Javascript 打开多个窗口时复制事件侦听器(Firefox扩展)

Javascript 打开多个窗口时复制事件侦听器(Firefox扩展),javascript,firefox-addon,xul,Javascript,Firefox Addon,Xul,我的firefox扩展在加载时调用一个observer函数,该函数拦截来自特定域的http请求(修改请求时的http),并在新选项卡中打开它们 我遇到的问题是,如果打开了多个浏览器窗口(不是选项卡,而是新的浏览器窗口),则会多次执行扩展的JS,因此会添加多个事件侦听器。所有这些事件侦听器都会被触发,拦截的http请求会在多个选项卡中同时打开 这里最好的解决方案是什么?如果有办法只添加一次事件监听器,那可能仍然是个问题,因为如果我关闭添加事件监听器的浏览器窗口,这样就不会有事件侦听器来拦截这些ht

我的firefox扩展在加载时调用一个observer函数,该函数拦截来自特定域的http请求(修改请求时的http),并在新选项卡中打开它们

我遇到的问题是,如果打开了多个浏览器窗口(不是选项卡,而是新的浏览器窗口),则会多次执行扩展的JS,因此会添加多个事件侦听器。所有这些事件侦听器都会被触发,拦截的http请求会在多个选项卡中同时打开


这里最好的解决方案是什么?如果有办法只添加一次事件监听器,那可能仍然是个问题,因为如果我关闭添加事件监听器的浏览器窗口,这样就不会有事件侦听器来拦截这些http请求。

您应该创建一个变量来判断事件是否已被侦听。

您是否在每个窗口中打开了相关域?不,一个窗口调用的侦听器会检测到来自其他窗口的http请求。我认为最好的解决方案是将侦听器限制为仅实例化它的窗口,尽管我还没有找到任何方法。