javascript: document.scripts 和 getElementsByTagName( "script" ) 返回子集



我有一个Chrome扩展,可以解析页面上的javascript。当我右键单击"查看页面源代码"时,我看到许多脚本,其中一个我关心。在我的扩展中,(有时)我找不到该脚本。我可以在页面首次加载时找到它,但是在我单击一点后,我的扩展无法再找到脚本。在这两种情况下,"查看页面源代码"都会显示我正在寻找的脚本。

Chrome扩展程序代码 - 当我单击扩展程序的按钮时,会调用它:

// scripts = getElementsByTagName("script"); // doesn't work either
var scripts = document.scripts;
for(var i = 0; i < scripts.length; i++) {
   var line = scripts[i].innerHTML;
   var match = line.match('some regex expression here');
   if(match != null) {   
       ... do some stuff
   }
}

我想在这两种情况下找到脚本。我想知道"显示页面源代码"是否从外部文件中提取源 javascript,而 document.scripts 不是,或者类似的东西。

查看页面源代码显示首次从服务器下载的 html 文档。之后,各种 DOM 操作都是可能的,可以在页面中添加或删除标签。如果您使用检查元素右键单击选项,您将能够看到文档的当前状态,并检查您要查找的script标签是否仍然存在。

最新更新