我试图维护Firefox扩展,它依赖于获取当前的内部窗口ID。在Firefox 31中,window对象具有QueryInterface:
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 :(得分:0)
调用XPCNativeWrapper.unwrap会从窗口中删除QueryInterface。
if (aWindow.QueryInterface) {
util = XPCNativeWrapper.unwrap(aWindow.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils));
dump('Your inner window ID is: ' + util.currentInnerWindowID + '\n');
}