我已经阅读了很多关于这个问题的帖子,并尝试了所有包含 jQuery 的方法。
如果我在 xul 文件中加载 jQuery 并将其存储在一个变量中,它就可以工作。(如如何在 Firefox 扩展中使用 jQuery)
jQuery.noConflict();
sbsh.safeWalletUtils.$ = function (selector, context) {
return new jQuery.fn.init(selector, context || doc);
};
sbsh.safeWalletUtils.$.fn = sbsh.safeWalletUtils.$.prototype = jQuery.fn;
但是,我怀疑这里的建议解决方案要好得多: http://forums.mozillazine.org/viewtopic.php?f=19& t=2105087
loadjQuery: function(wnd){
var loader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"]
.getService(Components.interfaces.mozIJSSubScriptLoader);
loader.loadSubScript("chrome://clhelper/content/jquery/jquery-1.5.js",wnd);
var jQuery = wnd.jQuery.noConflict(true);
loader.loadSubScript("chrome://clhelper/content/jquery/jquery.hoverIntent.js", jQuery);
return jQuery;
},
在页面加载事件处理程序中:
var doc = event.originalTarget;
var wnd = doc.defaultView;
// load jQuery and save it as a property of the window
myprivatejQuery = loadjQuery(wnd)
但是我不断收到 wnd.jQuery undefined ..(链接中很少有人说这是问题所在)
我该怎么办?如何使用 jQuery 而不必担心 Firefox 扩展中的冲突?