2016-04-11 9 views
0

Warum Serivces.wm nicht definiert ist, wenn ich Firefox Addon SDK (JPM) verwenden, und der folgende Code in index.js:Zugriff Fenster Mediator in Firefox SDK Erweiterung

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)); 
} 

Der Fehler, den ich bekommen, wenn auf meinem Addon Button in Firefox:

TypeError: Services.wm is undefined

Irgendwelche Vorschläge eine große Hilfe sein würde, danke.

Antwort

0

Ich bin nicht sicher, warum dies fehlschlägt, vielleicht hat es etwas mit der Entwertung der chrome API zu tun. Sie können auf die Browserfenster zugreifen, indem Sie das freiliegende high level window API verwenden.

Die Windows-API-Seite Berichte dieses Beispiel:

var windows = require("sdk/windows"); 
for (let window of windows.browserWindows) { 
    console.log(window.title); 
} 

console.log(windows.browserWindows.length); 
Verwandte Themen