如何查找是否已加载javascript?

时间:2015-01-25 10:15:39

标签: javascript php jquery html ajax

我正在开发一个chrome扩展来ajaxify每个非ajax网站,如维基百科。它工作正常,但无法加载js文件。所以,我编写了一个脚本,通过从标记中获取src属性来加载页面所需的js文件。但问题是,当我加载该网站的另一个页面时,每个脚本都会再次加载。因此,降低带宽是有用的。

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

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标签而没有重新加载页面,那么已经加载的脚本也被删除了吗? 谢谢 我迫不及待地想要你的重播......

1 个答案:

答案 0 :(得分:0)

在JS文件的末尾:

window.iAmLoadedOnThisWindow = true;

在装载机部分:

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

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