Javascript 在FF 11中加载jquery UI时出现错误:“:”;TypeError:a未定义;
我正在ff扩展中使用jquery(ui)。在10楼前一切正常Javascript 在FF 11中加载jquery UI时出现错误:“:”;TypeError:a未定义;,javascript,jquery,jquery-ui,firefox-addon,Javascript,Jquery,Jquery Ui,Firefox Addon,我正在ff扩展中使用jquery(ui)。在10楼前一切正常 var loader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"].getService(Components.interfaces.mozIJSSubScriptLoader); loader.loadSubScript("chrome://myext/content/js/jquery-1.7.2.js",wnd); var jQ = wnd.jQu
var loader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"].getService(Components.interfaces.mozIJSSubScriptLoader);
loader.loadSubScript("chrome://myext/content/js/jquery-1.7.2.js",wnd);
var jQ = wnd.jQuery.noConflict(true);
try {
loader.loadSubScript("chrome://myext/content/js/jquery.ui.core.min.js", jQ);
} catch (Except){
alert(Except.toString());
}
在FF 11中,此代码不起作用。
根据上面的代码,我正在尝试加载jquery,然后加载jquery ui库。
Jquery正在加载,但未加载“chrome://myext/content/js/jquery.ui.core.min.js并给出错误“TypeError:a未定义”
任何帮助都将受到感谢 我也有类似的错误,但将loadSubScript放在这个位置对我有效:
//load jQuery
var loader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"]
.getService(Components.interfaces.mozIJSSubScriptLoader);
loader.loadSubScript("chrome://myext/content/lib/jquery-1.7.2.js",context);
var jQuery = window.jQuery.noConflict(true);
if( typeof(jQuery.fn._init) == 'undefined') { jQuery.fn._init = jQuery.fn.init; }
var $ = function(selector,context){ return new jQuery.fn.init(selector,context||myext.doc); };
$.fn = $.prototype = jQuery.fn;
myext.jQuery = jQuery;
myext.$ = $;
loader.loadSubScript("chrome://myext/content/lib/jquery.tablesorter.js",jQuery);
加载非精简版本时是否会出现更好的错误?为什么要将jQuery对象传递到调用中?这是否需要更改UI代码才能工作?我想您的意思是希望它在包装函数调用中使用的jQuery参数成为您的jQ,但如果这是实现它的语法,我会感到惊讶。如果您将它加载到
wnd
,它能工作吗?不,使用wnd它不能工作。这也是在扩展中加载jquery的标准方法。是的,请尝试非缩小版。同时将alert()
替换为Components.utils.reportError(除外)
-您将在错误控制台中看到正确的错误消息和行号,然后您(和我们)就不需要猜测了。@WladimirPalant我有类似的问题。我的错误消息是“类型错误:$未定义”。火狐8.0版。和Components.utils.reportError(除外)在错误控制台中不打印任何内容。我正在尝试加载从下载的jquery.hoverIntent.js,所以,loadSubScript的Dinesh位置是错误的?为什么它应该是另一种方式,以及您将如何更改它?嗯,我并不完全清楚,但是:当我出现错误(“类型错误:$is undefined”)时,loadSubScript行正好位于var jQuery行的下方。我在本地定义$之后移动了它,然后它就工作了。我对loadSubScript的工作原理没有深入的了解,也不知道它是如何管理作用域的,但似乎将该行放在$declarations之后会给插件的作用域增加$s。也许有比我更专业的人会澄清这一点,但我可以告诉你,它现在正在发挥作用。。。对于Dinesh来说可能是一样的,即使使用不同的插件。嗨,我试过使用jQueryUI,但它不起作用。。。因此,在这种情况下,我的解决方案不是很好。