【问题标题】:How to disable chrome extensions JS when debugging in devtools?在 devtools 中调试时如何禁用 chrome 扩展 JS?
【发布时间】:2012-02-10 08:24:51
【问题描述】:

当我添加鼠标事件断点时,devtools 总是跳转到扩展的 JS。

有没有办法直接指向我的鼠标事件代码?

【问题讨论】:

  • 我认为在这里澄清一下可能会有所帮助。 “直接指向我的鼠标事件代码”是什么意思?
  • @ronme 假设我正在调试某个页面的 js,监听所有 mousedown 事件,devtools 将显示在扩展的 js 代码中注册的 mousedown 处理程序。有没有办法直接在页面的js中显示mousedown处理程序?
  • 在调试器中,您应该能够选择您正在查看的 js 文件。一旦你选择了页面的 js 文件,你应该可以在那里设置一个断点。那不行吗?

标签: google-chrome google-chrome-extension google-chrome-devtools


【解决方案1】:

首先,您可能应该在此处查看有关如何调试 chrome 扩展的教程:

http://code.google.com/chrome/extensions/tut_debugging.html

如有疑问,您始终可以在要从中启动调试器的 JavaScript 代码中直接使用 debugger 关键字,如下所示:

element.addEventListener("mouseover", function() {
    debugger;
    // some JS handler code...
});

根据您的 JS 是在弹出窗口、后台页面还是内容脚本中,您需要确保从正确的位置启动开发工具。

对于弹出窗口,您需要右键单击扩展图标和“检查弹出窗口”,然后从 JavaScript 控制台运行 location.reload(true)

后台页面需要进入扩展设置页面chrome://settings/extensions,开启开发者模式,展开有问题的扩展,点击后台页面链接。

内容脚本应该在它加载到的页面上直接可见。

【讨论】:

  • 他不是在问如何调试扩展。他在询问如何防止调试器在调试普通 web 应用程序时进入扩展。
【解决方案2】:

我认为最简单的方法是打开一个隐身窗口Ctrl-Shift-N)(或Cmd-Shift-N mac)并在那里调试,因为这样就不会加载任何扩展(默认情况下)。

我知道你这个问题的意思:在调试时,做一些简单的事情,比如暂停执行,你总是会发现它会中断到扩展程序的代码之一,而不是当前网页的代码。

【讨论】:

    【解决方案3】:

    禁用脚本的唯一方法(例如避免副作用)是禁用扩展程序(例如,如果扩展程序未在隐身模式下启用,则使用隐身模式)。

    如果您不介意运行脚本,但想忽略扩展代码,则可以使用脚本blackboxing feature of Chrome's devtools

    如果您从未开发过扩展并且对逐步完成它不感兴趣,请打开 devtools 的设置菜单,点击 Blackboxing,然后点击“Blackbox content scripts”复选框:

    如果您只想选择性地忽略文件,那么您也可以右键单击要忽略的文件的源,然后单击“Blackbox Script”上下文菜单选项。要删除模式,请转到如前所示的“黑盒”设置面板。

    【讨论】:

    • 请注意:对于给定的域/开发工具实例,这种扩展代码的黑盒化似乎有时会停止工作。在这种情况下,在任务管理器中找到 dev-tools 任务,将其杀死,关闭选项卡,然后在新选项卡中重新打开网站。这是我发现恢复黑盒行为的唯一方法,当它中断时(一次在蓝月亮中)。
    • Blackboxing 选项卡现在是 Ignore List 并且 Blackbox 内容脚本 选项现在是 添加内容脚本忽略列表
    • 黑盒脚本现在是忽略列表。我选中了复选框将内容脚本添加到忽略列表,但它对我不起作用。我必须明确地将其添加到忽略列表中:^chrome-extension://
    【解决方案4】:

    如果您使用的是 Google Chrome(或任何基于 Chromium 的浏览器),只需使用新用户的数据目录运行新的浏览器实例。

    在 Linux 上:

    google-chrome --user-data-dir=$(mktemp -d)
    

    这样,所有扩展都将被禁用,而无需手动关闭/打开它们。

    【讨论】:

      【解决方案5】:

      打开开发者工具,然后进入设置,然后点击忽略列表,勾选将内容脚本添加到忽略列表,然后将其添加到忽略列表中:^chrome-extension://

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-01-09
        • 2021-06-26
        • 2018-07-19
        • 2019-01-06
        • 1970-01-01
        • 2019-02-12
        • 2013-07-20
        • 2012-12-12
        相关资源
        最近更新 更多