FF25.0,Fedora 18。
这只是围绕着圈子。登台扩展安装,部分活动,因为扩展修改了一点dom(我想甚至后台脚本也在本地存储初始化时运行)。并非所有扩展都能正常工作,例如应在页面加载时运行的侧边栏和其他dom注入。但是,crossrider中的调试模式页面无法识别正在运行的扩展名。
我怀疑这是由于我的代码中的错误,但似乎没有办法调试它。当我注释掉侧边栏时,它仍然在另一次安装后显示,这让我怀疑代理/缓存正在阻碍但是在扩展URL上添加额外的GET参数没有帮助。我已尝试将debugger
添加到extension.js
。控制台是空的。萤火虫没有报告任何错误。扩展在chrome中运行良好,我真的不想回到空白扩展并尝试逐位添加直到失败。必须有一个更简单的方法,比如让firefox说,“这是你的问题,就在第X行”。有什么想法吗?
[修改]
打开一些调试选项后,我在控制台中出现错误,但点击有问题的文件/行号只会打开“Source of:...”窗口。在谷歌浏览器中,我在调试器中获取文件,可以点击断点,刷新并捕获错误。更好的是,那些既有效又可以实际的“异常突破”选项如何运作。
[修改]
我终于让Browser Debugger工作了。第一个错误是NS_ERROR_XPC_BAD_OP_ON_WN_PROTO
。
答案 0 :(得分: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
看起来已经删除了很多选项。这至少让我开始了。
[修改]
This回答还提到“Web Developer-> Browser Debugger”(目前是空白的 - “没有来源” - 我不知道)和“Web Developer-> Browser Console”窗口(似乎有与窗口控制台相同的输出。)
答案 1 :(得分:1)
在所有的扩展程序代码周围抛出一个巨大的 try / catch 。至少这允许交叉“分段”扩展安装并被识别。
打印异常(我假设必须设置所有愚蠢的about:config
内容才能使其正常工作)
appAPI.ready(function($) {
try {
...rest of extension code
}
catch (e)
{
console.log("#################", e);
}
}
在控制台中找到错误,然后点击[object exception]
。注意行号(它注入其他代码时不正确)。另请注意,我们设法打印了一个例外, firefox 失败打破了。 FFFFFFFFFFFFFFFFFFFF
在代码中间大致添加一些换行符。
刷新。注意行号。如果它被更改,则错误发生在换行符之后。如果不是错误,那么。
从步骤4开始重复,直到找到错误。
花点时间思考一下这个过程的愚蠢。 (这不是针对交叉驾驶者的评论,更多的是因为目前可用的简单Web开发工具和API严重缺乏)