代码之家  ›  专栏  ›  技术社区  ›  Sonny D

控制台不记录内容脚本中的js错误

  •  4
  • Sonny D  · 技术社区  · 8 年前

    我知道调试内容脚本需要使用普通的web开发工具( https://developer.mozilla.org/en/docs/Mozilla/Add-ons/WebExtensions/Debugging#Debugging_content_scripts ),这非常有效。 debugger 关键字按预期工作。

    但在这种情况下,事情就会破裂:

    addon.id = "123-568-485"; // I never define `addon` before this line, so this cause: ReferenceError: "addon is not defined". We aren't aware of this mistake.
    
    // Some more code
    // Some more code
    // Some more code
    // Some more code
    
    debugger; // Here we want to stop execution and inspect, some other stuff. Remember that we aren't aware of earlier mistake.
    

    我们所期望的是,控制台中的错误 Reference error 将出现,但它没有。控制台保持沉默,我们不知道为什么我们的 调试器 关键字不起作用。

    当我拼错变量名时,发生了这种无声的错误。结果是,我想不出是怎么回事。

    1 回复  |  直到 8 年前
        1
  •  3
  •   Nickolay    6 年前

    由于Firefox,内容脚本中的错误不会在选项卡的Web控制台中报告 bug 1410932 ,这是不固定的(截至2020年7月28日发布的Firefox 79)。

    我在中列出了可能的解决方法 another answer

    • 使用try。。捕捉日志,
    • 检查 Browser Console (显示内容脚本中的错误)
    • 使用调试器的“暂停异常”选项。
        2
  •  1
  •   Jafar Akhondali    8 年前

    内容脚本是在网页中执行的,所以你们知道要看到它的输出,你们应该在那个特定的网页中打开控制台菜单(ctrl+shift+e然后转到控制台)。
    但是,如果内容脚本出现问题并导致其引发异常,则错误日志将显示在扩展的调试区域中: about:debugging

    enter image description here

    我认为原因是内容脚本被视为网页的额外框架,它们的错误显示在那里。