我有一个JavaScript调试问题。我想知道,如何能够找到加载和调用新脚本的文件/行。我的网站有几个脚本通过document.write()
附加,我希望找到一种方法在网站的所有附加脚本中找到函数调用。
我更喜欢Firebug或Chrome Dev工具。
谢谢!
答案 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错误修复后提供此功能,因此无需为其创建单独的问题。
在修复上述错误之前,您需要使用另一种方法来注入脚本,以便能够在浏览器中对其进行调试。
eval()
您可以使用eval()
函数动态评估任意代码。请注意,eval()
仅评估JavaScript代码,不得包含任何HTML。
示例:
eval("console.log('Hi!')");
<script>
标记您可以在页面中添加<script>
标记,然后向其中添加内容。
示例:
var script = document.createElement("script");
script.textContent = "console.log('Hi!');";
document.body.appendChild(script);
new Function()
您可以通过Function
构造函数创建新函数。
示例:
(new Function("console.log('Hi!');"))();
请注意,由于安全原因,JavaScript won't be executed使用innerHTML
或insertAdjacentHTML()
。