【发布时间】:2015-01-25 18:31:38
【问题描述】:
我正在开发一个 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() 函数删除正文标签,如果不重新加载页面,已经加载的脚本是否也被删除了? 谢谢 我期待着你的重播......
【问题讨论】:
-
那么,您只希望array2 包含不在array1 中的脚本src?
-
不是那个,我想把要加载的页面的脚本src数组。在 Array2 但 Array1 包含脚本 src 的页面数组,我在其中执行 ajax 请求以加载页面。
-
不要污染
Array.prototype。不要使用for...in循环迭代数组。
标签: javascript php jquery html ajax