如何在 chrome 中的内联 javascript 中添加断点

Posted

技术标签:

【中文标题】如何在 chrome 中的内联 javascript 中添加断点【英文标题】:How to add breakpoints in your inline javascript in chrome 【发布时间】:2013-05-11 16:40:06 【问题描述】:

我想调试我的 javascript 代码并能够成功地在源选项卡下的所需位置放置断点。

但是,我遇到了一个问题,我想调试我的内联 javascript 代码。我们是否有任何 chrome 调试工具功能,我可以使用它来调试我的内联 javascript 代码。

我也可以使用 Firebug 进行调试。

PS:我所说的内联javascript代码,是指在body标签和同一个文件中的JS代码。

【问题讨论】:

你在使用debugger;语句吗? 我不想为了调试目的而更改我的代码,因为稍后我也需要删除这些调试器行。所以我正在考虑一种解决方案,要求浏览器在断点处停止,就像它在源选项卡中停止一样。 How to set breakpoint in inline Javascript in Google Chrome browser for linux? 的可能重复项 【参考方案1】:

我找到了解决方案。我们也可以在内联 javascript 上设置断点。

解决方案:

转到 chrome 开发工具中的源选项卡,您可以看到所有源 那里。 您的 html 代码将出现在类似目录中 URL 中的结构。 然后您可以打开 HTML 并在您的内联 javascript 代码中放置断点

【讨论】:

可以设置断点并且可以工作,但是当脚本在模板标签内时,铬会简单地忽略它们,不幸的是不会在断点处暂停脚本。【参考方案2】:

另一种方法是使用动态脚本方法。 Chrome 提供了简单的解析器命令,可以标记动态加载的 JS。

<script type="text/javascript">
[...]
//# sourceURL=dynamicScript.js 
</script>

这一行告诉 chrome 调试器,脚本标签内的整个脚本应该被解释为一个 dynamicScript.js 文件。您可以在调试器列表中找到该文件并轻松设置断点或检查代码。

注意:@ 替换为 # 以避免在不受支持的浏览器上出现错误

Breakpoints in Dynamic JavaScript

【讨论】:

请注意 link-only answers 是不鼓励的,所以答案应该是寻找解决方案的终点(与另一个中途停留的参考相比,随着时间的推移往往会变得陈旧)。请考虑在此处添加独立的概要,并保留链接作为参考。 @fazzyx 感谢您的链接。我也同意 kleopatra 关于答案是搜索的终点。因此,要么您应该使用相关内容更新您的答案,要么只是将链接放在评论中。 type 是不是必须在&lt;script&gt; 中提及,html5 建议不要使用这个? 如果你使用 html5 我想不会【参考方案3】:

@blunderboy 如果您在 BODY 标记中包含以下类型的 JS,它将永远不会出现在您的目录结构中,因此在这种情况下,您的解决方案将不起作用。

<div>
<script src="myJSfile.js">
</script>
</div>

这发生在 jquery mobile 中,页面 div 之外的所有内容都没有加载,因此您必须在页面 div 中包含 JS。

我会将@fazzyx 的答案标记为正确答案,因为至少 chrome 会显示这些包含的文件。

【讨论】:

以上是关于如何在 chrome 中的内联 javascript 中添加断点的主要内容,如果未能解决你的问题,请参考以下文章

Chrome 中的 Css 内联样式错误:“拒绝应用内联样式,因为它违反了以下内容安全策略指令……”

如何在 Google Chrome 的内联 Javascript 中设置断点?

如何修复光标在 Android Chrome 上的内联 contenteditable 中跳转?

FF25 和 IE10 中的内联 SVG 上的 1 像素(或更少?亚像素?)边框,而不是 Chrome

Chrome 不尊重视频源内联媒体查询

Chrome 停止支持内联安装扩展