【发布时间】:2011-12-20 02:18:47
【问题描述】:
大家好,我有一个关于 Firefox 插件的问题:
例如,我如何从选项卡中获取正文内容。
var content = require("tabs").activeTab.documentContent.body.innerHTML;
非常感谢。
【问题讨论】:
-
您是否发现它是否适用于 SDK?
标签: tabs firefox-addon firefox-addon-sdk
大家好,我有一个关于 Firefox 插件的问题:
例如,我如何从选项卡中获取正文内容。
var content = require("tabs").activeTab.documentContent.body.innerHTML;
非常感谢。
【问题讨论】:
标签: tabs firefox-addon firefox-addon-sdk
插件 SDK 不允许直接访问选项卡内容 - 其想法是插件和选项卡最终可能最终存在于不同的进程中。您所做的是将内容脚本注入选项卡以获取必要的数据,如下所示:
var tab = require("tabs").activeTab;
tab.attach({
contentScript: "self.postMessage(document.body.innerHTML);",
onMessage: function(data)
{
console.log("Tab data received: " + data);
}
});
【讨论】:
你可以试试这个:
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 更好。
【讨论】:
您可以使用以下命令(在DOMContentLoaded 之后)获取当前选定选项卡的正文:
gBrowser.contentDocument.body.innerHTML
注意:这仅适用于标准扩展,不适用于 SDK。
【讨论】: