2014-10-09 96 views
0

我试图维护一个Firefox扩展,它依靠获取当前的内部窗口标识。在Firefox 31的窗口对象有一个QueryInterface:在Firefox 32扩展中获取当前内部窗口标识

components/foo.js: 

Foo.prototype = { 
    window: null, 
    ... 
    init: function(aWindow) { 
    this.window = XPCNativeWrapper.unwrap(aWindow); 
    var util = this.window.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils); 
    dump('Your inner window ID is: ' + util.currentInnerWindowID + '\n'); 
    }, 
    ... 
    shutdown: function() { 
    } 
} 

在Firefox 32中window.QueryInterface对象已经消失,我想知道如何得到当前内窗口ID。

谢谢。

回答

0

调用XPCNativeWrapper.unwrap从aWindow中删除QueryInterface。

if (aWindow.QueryInterface) { 
    util = XPCNativeWrapper.unwrap(aWindow.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils)); 
    dump('Your inner window ID is: ' + util.currentInnerWindowID + '\n'); 
} 
相关问题