检查脚本被调用的位置/哪一行或文档

Check where/which line or document a script gets called

本文关键字:一行 文档 脚本 调用 位置 检查      更新时间:2023-09-26

我有一个JavaScript调试问题。我想知道,如何找出在哪个文件/行中加载和调用新脚本。我的网站有几个通过document.write()附加的脚本,我想找到一种方法在网站的所有附加脚本中找到函数调用。

我更喜欢Firebug或Chrome Dev工具。

谢谢!

Firebug、Firefox或Chrome DevTools目前都不允许调试通过document.write()插入的代码。我为 Firefox DevTools 创建了错误1122222,并为 Chrome DevTools 发布了449269,请求能够调试此类脚本。由于即将推出的Firebug版本将基于Firefox DevTools,一旦Firefox错误得到修复,它将提供此功能,因此无需为其创建单独的问题。

在修复上述错误之前,您需要使用另一种方法来注入脚本,以便能够在浏览器中对其进行调试。

方法1:使用eval()

可以使用 eval() 函数动态计算任意代码。请注意,eval()只计算 JavaScript 代码,它不能被任何 HTML 包围。

例:

eval("console.log('Hi!')");

方法 2:注入<script>标记

您可以向页面添加<script>标记,然后向其添加内容。

例:

var script = document.createElement("script");
script.textContent = "console.log('Hi!');";
document.body.appendChild(script);

方法3:使用new Function()

可以通过 Function 构造函数创建新函数。

例:

(new Function("console.log('Hi!');"))();

请注意,出于安全原因,JavaScript 不会使用 innerHTMLinsertAdjacentHTML() 执行。