为什么Serivces.wm
未定义,当我使用Firefox Addon SDK(JPM)时,以及index.js
中的以下代码:
var self = require("sdk/self");
const { Cu } = require("chrome");
let Services = Cu.import("resource://gre/modules/Services.jsm");
require("sdk/ui/button/action").ActionButton({
id: "list-tabs",
label: "List Tabs",
icon: "./icon-16.png",
onClick: myTestFunc
});
function myTestFunc() {
var windows = Services.wm.getEnumerator("navigator:browser");
while (windows.hasMoreElements())
iterateWindows(windows.getNext().QueryInterface(Components.interfaces.nsIDOMWindow));
}
在Firefox中单击我的插件按钮时出现的错误:
TypeError: Services.wm is undefined
任何建议都会有很大的帮助,谢谢。
答案 0 :(得分:0)
我不确定为什么会失败,也许这与chrome API的弃用有关。您可以使用公开的high level window API访问浏览器窗口。
Windows API页面报告此示例:
var windows = require("sdk/windows");
for (let window of windows.browserWindows) {
console.log(window.title);
}
console.log(windows.browserWindows.length);