为什么chrome.tabs.onCreated会在QQ浏览器中执行两次

为什么chrome.windows.onCreated会在QQ浏览器中执行两次
我在浏览器插件中定义好如下代码

chrome.windows.onCreated.addListener(function(Window,window) {
    console.log('新视窗被打开');
});

我这里在QQ浏览器中直接执行了两次,在别的浏览器正常

img

先判断是否是QQ浏览器,然后外部设置一个变量,第一次的时候++,默认是0,如果不是0就直接return出去

可能是因为QQ浏览器的特性和实现方式与其他浏览器不同,导致 chrome.tabs.onCreated 事件被触发了两次。另外,你的代码中的事件是 chrome.windows.onCreated,而不是 chrome.tabs.onCreated,所以可能并不是该事件导致了触发两次。

为了更明确地了解发生了什么,你可以在控制台中打印 Window 对象,以检查它是否包含有关两个事件的信息。

如果你只需要在新窗口被创建时执行特定的代码,可以使用以下代码:

chrome.windows.onCreated.addListener(function(window) {
    console.log('新窗口被创建!');
});

这将确保你的代码只会在新窗口被创建时执行一次,并且应该可以在不同类型的浏览器中正常工作。