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

时间:2014-12-08 14:57:30

标签: javascript debugging call firebug google-chrome-devtools

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

我更喜欢Firebug或Chrome Dev工具。

谢谢!

1 个答案:

答案 0 :(得分:1)

Firebug,Firefox或Chrome DevTools目前都不允许调试通过document.write()插入的代码。我为Firefox DevTools创建了bug 1122222,为Chrome DevTools创建了issue 449269,要求能够调试这些脚本。作为upcoming Firebug versions will be based on the Firefox DevTool,它将在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 won't be executed使用innerHTMLinsertAdjacentHTML()