如何调试Firefox扩展

Ale*_*x K 8 javascript firefox xul firefox-addon

我最近一直在进行Firefox扩展开发,遇到了一些问题:

所以,在browser.xul我定义了这些行:

<overlay id="sample" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    <script src="jquery.js" />
    <script src="global.js" />
</overlay>
Run Code Online (Sandbox Code Playgroud)

所以,在global.js中,我可以访问所有jQuery的东西,并尝试在那里加载一个简单的脚本:

var inner = null;
var o = function () {
    var prefManager = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
    return {
        init : function () {
            alert('here loading inner..');
            $.get('http://www.example.com/script.js', function(d) {
                alert('loaded inner script!');
                inner = d;
                gBrowser.addEventListener("load", function () {
                    alert('onload');
                }, false);
            }).error(function(e) { alert('error loading inner..'); setTimeout(o.init,1000); });
            $(this).ajaxError(function() { alert('ajaxError'); });
        }
    }
}
window.addEventListener("load", o.init, false);
Run Code Online (Sandbox Code Playgroud)

但我也没有收到"加载的内部脚本",也没有"加载内部错误"警告..​​我没有看到错误控制台记录扩展中的任何错误...我认为$.get由于某些限制,它会默默地失败也许,但是有没有正确的方法来正常调试错误?错误控制台对于扩展名是静默的,它仅显示来自网页的错误

Mat*_*son 8

如果您查看文章https://developer.mozilla.org/en/Setting_up_extension_development_environment,它建议设置一些首选项,包括

javascript.options.showInConsole=真.将chrome文件中的错误记录到错误控制台.

  • 有没有办法调试断点?错误控制台与药物上的骡子一样有用.(但是,仍然比没有好) (3认同)
  • 从FF19开始,您可以在浏览器chrome本身上使用内置调试工具,请参阅此答案以获取详细信息:http://stackoverflow.com/questions/17547364/how-debug-firefox-extension-with-chromebug/17579253#17579253 (2认同)