1

我正在使用 jQuery 开发一个 firefox 插件。我添加了一个页面加载侦听器并在该函数中加载 jQuery javascript 文件。

   onPageLoad: function(aEvent) {
        var doc = aEvent.originalTarget; // doc is document that triggered the event
        var win = document.defaultView; // win is the window for the doc

        var jsLoader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"].getService(Components.interfaces.mozIJSSubScriptLoader);
        jsLoader.loadSubScript("chrome://myExt/content/jquery-1.8.0.js");

加载 jQuery 没有错误。但是,当我尝试使用 jQuery 修改 DOM 或进行任何 DOM 搜索等时,它会失败

if($("#id1").length>0) // length is always 0
// do something

var x  = document.getElementById("id1"); //plain old javascript and it works

我可以使用 javascript 做所有事情。但是,对 jQuery 做同样的事情没有任何错误。知道这里可能出了什么问题吗?

谢谢。

4

1 回答 1

2

我找到了解决方案。jQuery 加载很好,并且能够毫无问题地执行非 DOM 相关功能。但是,$由于需要修改功能,因此无法对 DOM 做任何事情。

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

这里,“doc”是文档。做出这个改变后,一切都到位了。

@everone,感谢您的评论。我之前没有看到回复。如果不是,我会很乐意回复。

  • 赛莱什
于 2012-12-03T11:23:18.303 回答