0

FF25.0,Fedora 18。

这只是一直在转圈。登台扩展安装,它的一部分是活动的,因为扩展修改了一些 dom(我认为即使是后台脚本也在运行,因为本地存储被初始化)。并非所有扩展都有效,例如侧边栏和其他应该在页面加载时运行的 dom 注入。但是 crossrider 中的调试模式页面无法识别正在运行的扩展。

我怀疑这是由于我的代码中的错误,但似乎没有办法调试它。当我注释掉侧边栏时,它在另一次安装后仍然短暂显示,这让我怀疑代理/缓存正在妨碍但在扩展 URL 上添加额外的 GET 参数并没有帮助。我试过添加debuggerextension.js. 控制台是空的。firebug 不会报告任何错误。该扩展在 chrome 中运行良好,我真的不想回到空白扩展并尝试一点一点添加,直到失败。必须有一种更简单的方法,例如让 firefox 只说“这是你的问题,就在第 X 行”。有任何想法吗?

[编辑]
打开一些调试选项后,我在控制台中遇到错误,但单击有问题的文件/行号只会打开“来源:...”窗口。在谷歌浏览器中,我在调试器中获取文件,可以在错误发生时打断点、刷新并捕获错误。更好的是,一个既有效又实际有效的“异常中断”选项怎么样。

[编辑]
我终于让浏览器调试器工作了。第一个错误是NS_ERROR_XPC_BAD_OP_ON_WN_PROTO.

4

2 回答 2

1

好吧,要开始实际获取消息,您需要在about:config此处列出的“”中设置一些标志:Setting_up_extension_development_environment

我复制几张...

  • javascript.options.showInConsole = true(这对我来说已经开始了)
  • browser.dom.window.dump.enabled = true
  • javascript.options.strict = true(我也打开了一个调试版本)
  • devtools.chrome.enabled = true(与谷歌浏览器无关)
  • devtools.debugger.remote-enabled = true重要的是,允许Firefox->Web Developer->Browser Debugger,确保允许远程调试器,否则它会撤消配置更改)
  • devtools.errorconsole.enabled = true
  • extensions.logging.enabled = true

看起来很多选项也被删除了。这至少让我开始了。

[编辑]
这个答案还提到了“Web Developer->Browser Debugger”(目前是空白的-“没有来源”-我不知道)和“Web Developer->Browser Console”窗口(只是似乎有相同的输出作为窗口内控制台)。

于 2013-12-18T14:14:16.713 回答
1
  1. 在你所有的扩展代码周围抛出一个巨大的尝试/捕捉。至少这允许安装和识别crossrider“登台”扩展。

  2. 打印异常(我假设about:config必须设置所有愚蠢的东西才能使它工作)

    appAPI.ready(function($) {
        try {
        ...rest of extension code
        }
        catch (e)
        {
            console.log("#################", e);
        }
    }
    
  3. 在控制台中找到错误,然后单击[object exception]. 注意行号(由于注入了其他代码,它不会是正确的)。另请注意,我们已经设法打印了一个异常,而firefox未能破解它。FFFFFFFFFFFFFFFFFFFF

  4. 大约在代码中间添加一些换行符。

  5. 重新加载。注意行号。如果已更改,则错误在换行符之后。如果不是,则错误在之前。

  6. 从步骤 4 开始重复,直到发现错误。

  7. 花点时间反思一下这个过程的愚蠢。(这并不完全是针对 crossrider 的评论,更多的是当前严重缺乏简单的 Web 开发工具和 API)

于 2014-01-03T08:13:01.350 回答