Firefox addon 如何从Firefox加载项(SDK)保存当前文档?

Firefox addon 如何从Firefox加载项(SDK)保存当前文档?,firefox-addon,firefox-addon-sdk,Firefox Addon,Firefox Addon Sdk,我想使用用插件SDK创建的Firefox插件将HTML文档保存在当前选项卡中 我试着这样做: exports.main = function() { require("widget").Widget({ id: "foo", label: "My Test", contentURL: "http://www.mozilla.org/favicon.ico", onClick: functio

我想使用用插件SDK创建的Firefox插件将HTML文档保存在当前选项卡中

我试着这样做:

exports.main = function() {

    require("widget").Widget({
            id: "foo",
            label: "My Test",
            contentURL: "http://www.mozilla.org/favicon.ico",
            onClick: function(event) {

                var {Cc, Ci} = require("chrome");
                var persist = Cc["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].createInstance(Ci.nsIWebBrowserPersist);
                var localPath = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
                localPath.initWithPath("/tmp/");
                var localFile = localPath.clone();
                localFile.append("mylocalfile.html");
                var tabs = require("tabs");
                persist.saveDocument(tabs.activeTab, localFile, localPath, null, 0, 0);
            }
    });
};
但是当我点击这个小部件时,上面的代码使Firefox(15.0)崩溃

我猜tabs.activeTab可能不是nsIDOMDocument?这就是问题所在吗


如何使其工作?

tabs.activeTab绝对不是nsIDOMDocument,请查看此处的文档:

相反,您应该能够通过tabs.open打开一个选项卡,并将内容脚本附加到打开的选项卡上。以下是如何将内容脚本附加到打开的选项卡的示例: