我真的不明白你要做什么,所以这里有两种不同的方法。
如果您需要访问页面的文档元素,则必须使用更底层的方法,除非您想简化并只使用page-mod
.
以下是在选项卡内的页面上创建 A 元素的方法:
var { getTabs, getTabContentWindow } = require('sdk/tabs/utils');
function listTabs1() {
var tabs = getTabs();
tabs.forEach(function (tab) {
// Fake a newly created document
var window = getTabContentWindow(tab);
var document = window.document;
var tab_url = document.createElement('a');
tab_url.setAttribute("href", tab.url);
});
}
我建议使用 apage-mod
来更改此页面,而不是上面的代码。
但是,如果您只是想检查每个选项卡的主机,您可以像以前一样遍历它们,然后使用该URL
模块进行困难的主机名解析。
var URL = require('sdk/url').URL;
var tabs = require("sdk/tabs");
function listTabs2() {
tabs.forEach(function (tab) {
var url = URL(tab.url);
console.log(url.hostname);
});
}
最后一个提示是,您可以轻松编写一个模块,使用nsIEffectiveTLDService
来查找您认为拥有的主机名的顶级域,因为所有 URL 解析都容易出错。 https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIEffectiveTLDService
祝你好运!