大家好,我对firefox附加组件有疑问:
例如,我如何从标签中获取正文内容。
var content = require("tabs").activeTab.documentContent.body.innerHTML;
非常感谢。
答案 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。