Firefox附加组件获取选项卡正文内容

时间:2011-12-20 02:18:47

标签: tabs firefox-addon firefox-addon-sdk

大家好,我对firefox附加组件有疑问:

例如,我如何从标签中获取正文内容。

var content = require("tabs").activeTab.documentContent.body.innerHTML;

非常感谢。

3 个答案:

答案 0 :(得分:3)

Add-on SDK不允许直接访问选项卡内容 - 这个想法是加载项和选项卡最终可能最终生活在不同的进程中。您所做的是将内容脚本注入选项卡以获取必要的数据,如下所示:

var tab = require("tabs").activeTab;
tab.attach({
  contentScript: "self.postMessage(document.body.innerHTML);",
  onMessage: function(data)
  {
    console.log("Tab data received: " + data);
  }
});

答案 1 :(得分:1)

你可以试试这个:

var tabs = require("sdk/tabs");
var { getTabForId, getTabContentWindow } = require ("sdk/tabs/utils");
var tab = require("tabs").activeTab;
var window = getTabContentWindow (getTabForId(tab.id));
var content = window.document.body.innerHTML;

但也许this answer更好。

答案 2 :(得分:0)

您可以使用以下内容(DOMContentLoaded之后)获取当前所选标签的正文:

gBrowser.contentDocument.body.innerHTML

注意:这仅适用于标准扩展,而不适用于SDK。