Javascript jQuery插件:将脚本标记引用限制到其他库
我即将创建一个jQuery插件,但我正在考虑使用其他一些库。现在为了便于使用,我想知道是否有办法限制我必须添加的脚本标记引用的数量 我正在考虑的几个选择: 1:在插件代码中包含库代码。不确定这是否可行?它将增加插件的大小 2:我刚读到关于google.loader的文章,所以我还不太了解它。似乎是一种使用GoogleAPI从代码内部加载库的方法。但它确实需要一个API密钥,所以这可能不适合所有人Javascript jQuery插件:将脚本标记引用限制到其他库,javascript,jquery,Javascript,Jquery,我即将创建一个jQuery插件,但我正在考虑使用其他一些库。现在为了便于使用,我想知道是否有办法限制我必须添加的脚本标记引用的数量 我正在考虑的几个选择: 1:在插件代码中包含库代码。不确定这是否可行?它将增加插件的大小 2:我刚读到关于google.loader的文章,所以我还不太了解它。似乎是一种使用GoogleAPI从代码内部加载库的方法。但它确实需要一个API密钥,所以这可能不适合所有人 那么StackOverflow,你如何处理这个问题呢?我不会在插件中包含其他库,没有人希望使用一个插
那么StackOverflow,你如何处理这个问题呢?我不会在插件中包含其他库,没有人希望使用一个插件,它将包含的内容隐藏到外部库中,可能会破坏主程序 如果您正在寻找一种在不手动添加脚本标记的情况下包含脚本的方法,那么可以尝试jQuery.loadScript或closure/google或YUI中的任何等效方法 下面是我曾经使用过的另一种简单方法,效果非常好:
function loadScript( url, callback ) {
var done = false,
script = document.createElement('script');
script.src = url;
script.async = true;
// Attach handlers for all browsers
script.onload = script.onreadystatechange = function() {
if ( !done && (!this.readyState ||
this.readyState == 'loaded' || this.readyState == 'complete') ) {
done = true;
if (typeof callback == 'function') {
callback.call( window, script );
}
// Handle memory leak in IE
script.onload = script.onreadystatechange = null;
}
};
var s = document.getElementsByTagName( 'script' )[0];
s.parentNode.insertBefore( script, s );
};
我当然不会在插件中包含库代码,它不仅会使插件更胖,而且随着时间的推移无法维护。为什么您不愿意限制脚本标记引用的数量?我想这主要是为了使它更易于使用和更便于移植。我想使用jqueryui、jQuery.tmpl和json2.js,这样人们至少需要添加3个额外的引用。