我有一个Firefox添加,当它看到某个响应标题时显示弹出窗口。当我有一个窗口时,这工作正常。但是,当我打开多个窗口时,窗口中的一个选项卡会触发我的附加组件中的弹出代码(由于存在所述标题),我会在每个打开的窗口中弹出一个窗口。例如,如果我打开3个窗口,我会得到3个不同的弹出窗口,每个窗口一个。这是默认行为,是否有一种简单的内置方法可以使用他们的SDK修复此问题。
编辑: 我有以下代码:
Util.requestBlock(httpChannel) {
/*load response headers here*/
if (responseHeaders.includes("header_xyz"))
alert("show popup");
}
Util.monitor = function(w) {
this.obsService = Components.classes['@mozilla.org/observer-service;1'].getService(Components.interfaces.nsIObserverService);
this.obsService.addObserver(this, 'http-on-examine-response', false);
}
Util.monitor.prototype = {
'observe': function(subject, topic, data). {
if (topic == 'http-on-examine-response'). {
var channel = subject.QueryInterface(Components.interfaces.nsIHttpChannel);
var block_response = new Util.RequestBlock(channel);
}
},
};
Util.monitor添加了一个观察者。只要收到响应,就会调用“观察”功能。
答案 0 :(得分:0)
var windows = require("window-utils");
for (window in windows.browserWindowIterator)
doToWindow(window);