如何查找 javascript 是否已加载


How to find if a javascript is already loaded or not?

我正在开发一个chrome扩展程序来ajax化每个非ajax网站,如维基百科。它工作正常,但无法加载 js 文件。因此,我编写了一个脚本来加载页面所需的js文件,方法是从标签中获取src属性。但问题是当我加载该网站的另一个页面时,每个脚本都会再次加载。因此,以减少带宽为目的进行制作是没有用的。

所以,我想知道是否有任何方法可以将 new 的脚本数组与其上一页相匹配。 并确定哪些脚本是新的并仅加载它们。

var array1 = [];
for (var i = 0; i < jsn; i++) {
    var jssrc = document.getElementsByTagName("script")[i].src;
    array1.push(jssrc);
}
var array2 =  [how to find out array script source of the new page]
Array.prototype.diff = function(array2) {
    var ret = [];
    for(i in this) {
        if(array2.indexOf( this[i] ) > -1){
            ret.push( this[i] );
        }
    }
    return ret;
}; 
ajaxpagefetcher.load("ajax-script", "", true, array1.diff(array2);)

如何查找要加载的新页面的脚本 src 数组。.还有一个问题,如果我通过 remove() 函数删除 body 标签,如果不重新加载页面,那么已经加载的脚本是否也被删除了?谢谢我渴望你的重播....

在 JS 文件的末尾:

window.iAmLoadedOnThisWindow = true;

在装载机部分:

if(! window.iAmLoadedOnThisWindow) {
    // append the script with some dom method
}

如果JS文件是一个库,测试库:if(jQuery)if(_)等。