从firefox附加组件保存当前页面

时间:2014-06-07 08:08:27

标签: firefox-addon firefox-addon-sdk

我需要一种从附加组件中保存当前页面(包括图像,CSS等)的方法。

当然我在SDK中找到了saveDocument()函数,但是我无法使它工作。

  • 来自附加脚本,我无法访问实际的DOM内容
  • 来自内容脚本,我无法访问SDK功能' saveDocument()'

我想念一些事情,如果有人能帮助我,我会很高兴。

致以最诚挚的问候,

弗雷德

1 个答案:

答案 0 :(得分:0)

这是从插件脚本访问DOM文档的一种方法。

var winutil = require('sdk/window/utils');
function findDocument(predicate){
    // searching in focused window only
    // you can also get all windows with winutil.windows('navigator:browser')
    var win = winutil.getMostRecentBrowserWindow();
    var gBrowser = win.gBrowser;
    // traverse tabs of focused window
    for (var i=0, l=gBrowser.browsers.length; i<l; i++)
    {   
        var br = gBrowser.getBrowserAtIndex(i);
        var doc = br.contentDocument;
        if (predicate(doc))
            return doc;
    }   
}
// and this is probably how you would save (not tested)
var {Cc, Ci} = require('chrome');
var wbp = Cc["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"]
    .createInstance(Ci.nsIWebBrowserPersist);
var doc = findDocument(/* whatever */);
if (doc)
    wbp.saveDocument(doc, /* figure out other args */);