2014-06-07 54 views
1

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

当然,我发现在SDK中的saveDocument()函数,但我不能使它发挥作用。

  • 从附加剧本,我没有访问来自内容脚本实际的DOM内容
  • ,我没有获得SDK函数“saveDocument()”

我想念的东西如果有人能帮助我,我会很高兴。

最好的问候,

弗雷德

+0

你能提供一个链接到saveDocument函数文档? – willlma

+0

如果它隐藏,然后点击文件>保存页面然后点击文件类型选择网页完成,那么在菜单栏上按住(按下'Alt')有什么问题? – Noitidart

+0

您是否试图用JavaScript对页面所做的更改保存页面?试试这个附加组件:[Save from Back to File from DOM](https://addons.mozilla.org/zh-CN/firefox/addon/save-back-to-file-from-dom/?src=search) – Noitidart

回答

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 */); 
+0

太棒了!按预期工作。非常感谢你。 – user3717364

相关问题