我有一个 JavaScript 调试问题。我想知道如何找到新脚本在哪个文件/行中加载和调用。我的网站有几个通过 document.write()
附加的脚本,我想找到一种方法在网站的所有附加脚本中查找函数调用。
我更喜欢 Firebug 或 Chrome 开发工具。
谢谢!
最佳答案
Firebug、Firefox 或 Chrome DevTools 目前都不允许调试通过 document.write()
插入的代码。我创建了bug 1122222对于 Firefox DevTools 和 issue 449269 Chrome DevTools 请求能够调试此类脚本。如upcoming Firebug versions will be based on the Firefox DevTool s,一旦 Firefox 错误修复,它将提供此功能,因此无需为其创建单独的问题。
在修复上述错误之前,您需要使用另一种方法来注入(inject)脚本,以便能够在浏览器中对其进行调试。
方法一:使用eval()
您可以使用 eval()
动态评估任意代码的函数。请注意 eval()
仅评估 JavaScript 代码,它不能被任何 HTML 包围。
示例:
eval("console.log('Hi!')");
方法2:注入(inject)<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使用 innerHTML
或 insertAdjacentHTML()
由于安全原因。
关于javascript - 检查脚本被调用的位置/哪一行或文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27360712/