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

标签 javascript debugging call firebug google-chrome-devtools

我有一个 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/

相关文章:

c - 使用系统调用的初学者编程 SO

java - 如何记录/跟踪java中对象的任何方法调用

javascript - Nginx 不传递自定义 header 来访问后端(Node js)

javascript - Angular ng-repeat中的orderBy数组项值

Javascript 使用 JSON.stringify() 返回对象将对象属性转换为字符串

python - TensorFlow 调试器值错误 : Node name 'Add/x' is not found in partition graphs of device

debugging - 如何在运行时获取 Kony 应用程序的名称

c# - 如何在asp.net web 应用程序中调用javascript 方法

c# - 将 javascript 数组解析为 C# 对象列表

c++ - VC++ 运行时错误 : Debug Assertation Failed