我正在尝试修改不同的加载器,以便在调用main函数之前可以处理多个脚本。这应该加载jQuery,然后加载jQueryUI,然后调用main()来实际启动用户脚本。然而,它确实循环通过了,但是当它到达main()时,我从Chrome得到一个控制台错误,关于jQuery未定义。
!function loader (i) {
var requires = [ 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'
, 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js'
];
var loadScript = function (i) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = requires[i];
script.onload = (++i === requires.length) ? function () { loader(i); }
: function () { main(); }
document.head.appendChild(script);
};
loadScript(i || 0);
}();
function main () {
console.log(jQuery.version);
console.log(jQuery.ui.version);
}发布于 2012-01-22 12:14:13
这是我想出的最终脚本,如果有人在寻找这种类型的东西。http://userscripts.org/scripts/review/123588
彼拉多抓住了它的一部分,与三元。Nate B也有它的一部分,jQuery使用jQuery.fn.jquery (但UI不一致并使用jQuery.ui.version)。
对于第三方来说,想出如何跳过中间的包装器部分是很好的,但这是可行的。:)
发布于 2012-01-21 01:17:09
我不认为jQuery.version是一个有效的属性,它返回undefined。在那里试试$.fn.jquery,看看会发生什么。
https://stackoverflow.com/questions/8945147
复制相似问题