无法在Chrome开发者工具22中看到动态加载的代码

时间:2012-10-30 20:58:47

标签: google-chrome-devtools

当我通过AJAX动态加载包含javascript的html片段时,我无法在Chrome 22.0.1229.94的开发者工具窗口的源选项卡中看到该内容。有点儿,我去了这里

https://developers.google.com/chrome-developer-tools/docs/scripts-breakpoints#js_dynamic

此页面显示了一个过时的示例开发人员工具窗口。在页面上有一个按钮来加载动态脚本,当你这样做时,它不会显示在源选项卡中。

作为解决方法,我发现添加

debugger;

到脚本并重新加载它将导致它在动态加载的代码中暂停,但不幸的是,所有行号都是灰色的,你不能在调试器中设置任何断点。

我在这里遗漏了什么或者什么?

谢谢, 罗布

5 个答案:

答案 0 :(得分:26)

当您使用已动态加载的库或javascript代码时,可以使用短语

//@ sourceURL=foo.js

在您的javascript代码的开头, foo.js 是将为其分配的名称。调试器将使用该名称显示它。 在chrome中也是如此,我想在firebug中也是如此。 在这种情况下,您可以在动态加载的JavaScript代码中放置断点。

答案 1 :(得分:9)

可能重复: Is possible to debug dynamic loading JavaScript by some debugger like WebKit, FireBug or IE8 Developer Tool?

不知道这是否适用于chrome(这绝对不适合我现在,可能在过去)。

//@ sourceURL=foo.js

工作解决方案

对于通过ajax动态加载的脚本出现在Chrome源工具中,您需要在脚本文件的开头或结尾(我更喜欢)位置添加以下行:

//# sourceURL=foo.js

名称为foo.js的脚本将显示在(无域名)下拉列表

下的源选项卡左侧窗格中

- >本地主机     - source / src

- >(无域名)     - foo.js

enter image description here

或者,您可以在脚本之间的任何位置添加以下行。

debugger;

在chrome中,您可以使用"调试器; "调试器面板打开时在语句处断开的语句。如果调试器面板关闭,Chrome将忽略此项。

这将有助于在调试模式下停止脚本,您将在源(调试)面板中看到名称为VM ****的脚本。

希望这有帮助。

答案 2 :(得分:5)

您可以使用// @ sourceURL。 Chrome似乎不支持内联脚本的// @ sourceURL。但是,它确实适用于eval表达式。 This article提供了有关在代码中命名eval块和命名任何匿名函数的更多详细信息。

您可以尝试嵌入脚本标记或JSONP,而不是使用eval。

Varunkumar Nagarajan

答案 3 :(得分:0)

对我而言,它发生在nodejs项目上。

我重新启动了服务器并在新标签页中打开我的应用 tada !..

答案 4 :(得分:-5)

  

或者,要解决此问题,您可以通过单击图标在单独的窗口中打开开发人员工具。现在重新加载脚本,它将按预期显示在脚本选项卡中。我知道这不是解决方案,而是一项工作。   enter image description here