Pau*_*jan 5 javascript ajax jquery yui
我想从我的javscript include中获取jquery库.
这是否100%有效?有没有更好的办法?
(function() {
var loadJquery = function (cb) {
var addLibs = function () {
if (typeof(document.body) == "undefined" || document.body === null) {
setTimeout(addLibs, 100);
return;
}
var node = document.createElement("script");
node.src = "http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js";
document.body.appendChild(node);
checkLib();
};
var checkLib = function () {
if (typeof($) == "undefined" || $("*") === null) {
setTimeout(checkLib, 100);
return;
}
cb($.noConflict());
}
addLibs();
}
loadJquery(function($){
// Do stuff with $
$(document.body).css("background", "black");
});
})();
Run Code Online (Sandbox Code Playgroud)
更改node.src,并$.noConflict以YUI如果你想YUI3,或者YAHOO如果你YUI2等.
在我们工作的内部邮件列表上发帖时,我被指出了这一点:
动态注入脚本涉及许多跨浏览器边缘情况。如果无法将 YUI 3 种子文件滚动到您的脚本中,并且您不能依赖已加载 YUI 3 种子的属性,我建议使用 LazyLoad(无耻插件)来引导您的脚本:http ://github.com/rgrove/lazyload/
您可以将lazyload.js合并到您的脚本中,然后使用类似以下内容来加载YUI 3种子(如果页面上尚未存在):
(function () {
function init() {
YUI().use('node', function (Y) {
// ... do my stuff ...
});
}
if (YUI) {
init();
} else {
LazyLoad.js('http://yui.yahooapis.com/3.0.0/build/yui/yui-min.js',
init);
}
})();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4816 次 |
| 最近记录: |