0

アドオン 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 ではないのではないでしょうか? それが問題ですか?

それを機能させるにはどうすればよいですか?

4

1 に答える 1

1

tabs.activeTab は明らかに nsIDOMDocument ではありません。こちらのドキュメントを参照してください:

https://addons.mozilla.org/en-US/developers/docs/sdk/latest/packages/addon-kit/tabs.html

代わりに、tabs.open を使用してタブを開き、開いたタブにコンテンツ スクリプトを添付するだけで済みます。開いているタブにコンテンツ スクリプトを添付する方法の例を次に示します。

https://builder.addons.mozilla.org/package/22176/latest/

于 2012-09-13T11:33:03.893 に答える