gpt4 book ai didi

javascript - chrome.browserAction.onClicked.removeListener 不起作用

转载 作者:行者123 更新时间:2023-12-03 07:16:03 26 4
gpt4 key购买 nike

我们开发了一个 Chrome 扩展程序,我想在用户单击我们的图标时打开一个新选项卡。但问题是,我不知道我之前是否已经添加了这个事件监听器,以及它的有效期是多长时间。我尝试使用 chrome.browserAction.onClicked.removeListener ,但它不会删除事件监听器,并且如果我多次添加该函数(打开 2 或 3选项卡)。这是我的代码:

var open_editor_in_tab = function() {
utils.open_tab(url);
};
chrome.browserAction.onClicked.removeListener(open_editor_in_tab);
chrome.browserAction.onClicked.addListener(open_editor_in_tab);

如何在再次添加监听器之前删除它?

更新:此外,使用此代码,它会打开选​​项卡 2 或 3 次:

var open_editor_in_tab = function() {
utils.open_tab(url);
};
if (!(chrome.browserAction.onClicked.hasListener(open_editor_in_tab))) {
chrome.browserAction.onClicked.addListener(open_editor_in_tab);
}

最佳答案

检查 event documentation 中的 hasListener 方法。来自文档的截图:

hasListener boolean Event.hasListener(function callback)

Parametersfunction callback

Listener whose registration status shall be tested.The callback parameter should be a function that looks like this:function() {...};

关于javascript - chrome.browserAction.onClicked.removeListener 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36420568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com