当前位置: 首页 > 面试题库 >

如何在Firefox扩展中使用jQuery

施季
2023-03-14
问题内容

我想在Firefox扩展中使用jQuery,我将库导入到xul文件中,如下所示:

<script type="application/x-javascript" src="chrome://myExtension/content/jquery.js"> </script>

但是xul文件中无法识别$()函数,jQuery()也无法识别。

我还尝试过将“ content.document”对象(该对象反映“ document”对象)作为上下文参数传递给jQuery函数,如下所示:

$('img',content.document);

但仍然无法正常工作,以前有人遇到过这个问题吗?


问题答案:

我使用以下内容example.xul

<?xml version="1.0"?>
<overlay id="example" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<head></head>
<script type="application/x-javascript" src="jquery.js"></script>
<script type="application/x-javascript" src="example.js"></script>
</overlay>

这是一个 example.js

(function() {
    jQuery.noConflict();
    $ = function(selector,context) { 
        return new jQuery.fn.init(selector,context||example.doc); 
    };
    $.fn = $.prototype = jQuery.fn;

    example = new function(){};
    example.log = function() { 
        Firebug.Console.logFormatted(arguments,null,"log"); 
    };
    example.run = function(doc,aEvent) {
        // Check for website
        if (!doc.location.href.match(/^http:\/\/(.*\.)?stackoverflow\.com(\/.*)?$/i))  
            return;

        // Check if already loaded
        if (doc.getElementById("plugin-example")) return;

        // Setup
        this.win = aEvent.target.defaultView.wrappedJSObject;
        this.doc = doc;

        // Hello World
        this.main = main = $('<div id="plugin-example">').appendTo(doc.body).html('Example Loaded!');
        main.css({ 
            background:'#FFF',color:'#000',position:'absolute',top:0,left:0,padding:8
        });
        main.html(main.html() + ' - jQuery <b>' + $.fn.jquery + '</b>');
    };

    // Bind Plugin
    var delay = function(aEvent) { 
        var doc = aEvent.originalTarget; setTimeout(function() { 
            example.run(doc,aEvent); 
        }, 1); 
     };
    var load = function() { 
        gBrowser.addEventListener("DOMContentLoaded", delay, true); 
    };
    window.addEventListener("pageshow", load, false);

})();


 类似资料:
  • 问题内容: 我正在编写FireFox-Extension,并希望从服务器加载数据。但是当我尝试使用以下方法初始化XMLHttpRequest时: 错误控制台显示: 我是否必须包含某些内容,或者为什么不能识别XMLTttpRequest? 问题答案: 附加SDK(您通过附加生成器间接使用)提供了一个实质上是包装的软件包,您应该使用它。据我了解,如果在执行请求时卸载/禁用了加载项,则不会直接访问您以防

  • 我正在尝试做的是创建一个chrome扩展,创建新的,嵌套的,书签文件夹,使用承诺。 执行此操作的函数是chrome.bookmarks.create()。但是我不能只循环这个函数,因为chrome.bookmarks.create是异步的。我需要等待,直到文件夹创建,并获得它的新ID,然后继续它的子级。 承诺似乎是要走的路。不幸的是,我找不到一个使用异步调用和自己的回调(如chrome.bookm

  • 问题内容: 我正在尝试从Firefox扩展程序中下载一些二进制数据。当我尝试将创建的XMLHttpRequest设置为arraybuffer模式时: 错误 被抛出。 还有另一种在Firefox扩展中下载二进制数据的方法吗? 问题答案: 您必须先调用该方法。

  • 所以,我需要在CMS中做一个扩展,称为TYPO3。这里有一些关于这个扩展的信息: “对于新的TYPO3 6.1网站,我们需要一个新闻稿扩展(基于ExtBase/Fluid),该扩展应包含: 标题/说明 目前实际上没有详细视图的设计,所以没有详细视图的链接。所以,现在,请专注于前端列表视图。" 我以前从未使用过这个CMS,所以我读了一下,发现我需要使用扩展生成器来创建这个扩展。所以,我已经下载并安装

  • 我正在尝试扩展com。fasterxml。杰克逊。数据绑定。爵士。std.MapSerializer包含一些我自己定义的函数,用于serialize()方法。 然后我将注释添加到我的地图,如下所示: 但是当我在MapSerializer中添加断点时,它甚至没有进入其中。我试图扩展JsonSeriazer

  • 遵循以下文档:http://guides.micronaut.io/micronaut-database-authentication-provider-groovy/guide/index.html,您可以为auth/auth创建一个DB/DAO。如果为UserFetcher、PasswordEncoder和AuthoritiesFetcher提供实现,那么最好使用默认的DelegatingAu