Rob*_*Rob 24 google-chrome-devtools
当我通过AJAX动态加载包含javascript的html片段时,我无法在Chrome 22.0.1229.94的开发者工具窗口的源选项卡中看到该内容.有点儿,我去了这里
https://developers.google.com/chrome-developer-tools/docs/scripts-breakpoints#js_dynamic
此页面显示了一个过时的示例开发人员工具窗口.页面上有一个按钮用于加载动态脚本,当您执行此操作时,它不会显示在源选项卡中.
作为解决方案,我发现添加
debugger;
Run Code Online (Sandbox Code Playgroud)
到脚本并重新加载它将导致它在动态加载的代码中暂停,但不幸的是,所有行号都是灰色的,你不能在调试器中设置任何断点.
我在这里错过了什么或什么?
谢谢,罗布
Far*_*eri 26
当您使用已动态加载它的库或javascript代码时,您可以使用该短语
//@ sourceURL=foo.js
Run Code Online (Sandbox Code Playgroud)
在您的javascript代码的开头,foo.js是将被分配的名称.调试器将使用该名称显示它.在chrome中也是如此,我想在firebug中也是如此.在这种情况下,您可以在动态加载的JavaScript代码中放置断点.
San*_*jay 10
可能重复: 可以通过WebKit,FireBug或IE8 Developer Tool等调试器来调试动态加载JavaScript吗?
不知道这是否适用于chrome(这绝对不适合我现在,可能在过去).
//@ sourceURL=foo.js
Run Code Online (Sandbox Code Playgroud)
工作方案
对于通过ajax动态加载的脚本出现在chrome源工具中,您需要在脚本文件的开头或结尾(我更喜欢)位置添加以下行:
//# sourceURL=foo.js
Run Code Online (Sandbox Code Playgroud)
名为foo.js的脚本将显示在源选项卡的左窗格中(无域)下拉列表中
- > localhost - source/src
- >(无域名) - foo.js
或者,您可以在脚本之间的任何位置添加以下行.
debugger;
Run Code Online (Sandbox Code Playgroud)
在chrome中,您可以使用"debugger;"语句在调试器面板打开时中断语句.如果调试器面板关闭,Chrome将忽略此项.
这将有助于在调试模式下停止脚本,您将在源(调试)面板中看到名称为VM****的脚本.
希望这可以帮助.