Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery 1.5.2+;在Firefox插件上?_Javascript_Jquery_Firefox_Firefox Addon - Fatal编程技术网

Javascript 如何使用jQuery 1.5.2+;在Firefox插件上?

Javascript 如何使用jQuery 1.5.2+;在Firefox插件上?,javascript,jquery,firefox,firefox-addon,Javascript,Jquery,Firefox,Firefox Addon,首先,我创建了一个函数,该函数接收一个参数并返回jQuery,例如: function getjQuery(window) { /*jquery code*/(window); return window.jQuery; } 但是后来我收到了一封来自评论的电子邮件,他们告诉我我必须使用原始文件名的jQuery文件,并且完全没有修改 我开始寻找另一种选择,并找到了,但没有办法 已创建jQuery对象,但找不到任何元素$(“#id”)。长度始终为0。用以前的方法总是能找到 我的当前代码

首先,我创建了一个函数,该函数接收一个参数并返回jQuery,例如:

function getjQuery(window)
{
   /*jquery code*/(window);
   return window.jQuery;
}
但是后来我收到了一封来自评论的电子邮件,他们告诉我我必须使用原始文件名的jQuery文件,并且完全没有修改

我开始寻找另一种选择,并找到了,但没有办法

已创建jQuery对象,但找不到任何元素<代码>$(“#id”)。长度始终为
0
。用以前的方法总是能找到

我的当前代码(不起作用)

jQuery文件正在我的
browser.xul
overlay上加载:

<script type="text/javascript" src="chrome://addon/content/bin/jquery-1.5.2.min.js" />

我在正确的地方装货吗


我如何使用jQuery修改页面上的内容(HTML)和原始jQuery文件,这是可能的吗?

加载它的首选方法是使用,这样您就不会与其他扩展冲突。我不知道你为什么会遇到问题,我可以在我的插件中使用jQuery,比如
$(“#id”).hide()
,而不需要额外的代码(尽管是从侧栏,现在是browser.xul)


无论如何,它都提供了一个非常好的指南,甚至有一个xpi示例可供下载。

您需要在jquery的第二个参数上传递e.originalTarget.defaultView。。 如果不这样做,jquery将使用window.document,这是xul中的window.document

使用

而不是

$("#id").length;
并且,为了避免与其他扩展冲突,请不要在xul页面中使用脚本,请使用MozIJSSubScriptLoader

Components.classes["@mozilla.org/moz/jssubscript-loader;1"]
.getService(Components.interfaces.mozIJSSubScriptLoader)
.loadSubScript("chrome://youraddon/content/jquery-1.5.2.min.js"); 

如果使用此方法,则只在需要时加载jquery,以避免内存泄漏。

可能重复@Matrix。您阅读了问题吗?如何加载jquery(在当前代码中,如何获取jquery变量)?另外,您是想将jQuery用于XUL还是用于浏览器中加载的html页面?@skabbes我正在
browser.XUL
overlay中添加jQuery。我想在HTML页面上使用
gBrowser.addEventListener(“DOMContentLoaded”,函数(e){e.originalTarget.defaultView;/*此窗口*/},false)
近乎完美。但由于某些原因,我不能附加元素<代码>$(“
  • ”)。追加(“#pageNav”),也不发送第二个参数(上下文)。这真的很烦人。。。尽管我可以设置元素的
    html
    $("#id").length;
    
    Components.classes["@mozilla.org/moz/jssubscript-loader;1"]
    .getService(Components.interfaces.mozIJSSubScriptLoader)
    .loadSubScript("chrome://youraddon/content/jquery-1.5.2.min.js");