在Google Chrome扩展中添加事件侦听器

Adding event listeners in Google Chrome extensions

本文关键字:添加 事件 侦听器 扩展 Google Chrome      更新时间:2023-09-26

所以我正在尝试编写一个Google Chrome扩展,到目前为止,我的代码看起来是这样的:

callback_function = function () {
    chrome.tabs.create({selected: true, url: "http://www.google.com"});
};
document.addEventListener(chrome.history.onVisited, callback_function());

如果我正确阅读了文档,chrome.history.onVisited是一个每当有人访问网站时就会触发的事件,chrome.tabs.create会使用指定的URL创建一个新选项卡。如果我理解正确的话,"事件侦听器"会等待事件被激发,并在事件被激发时运行回调函数。

因此,按照我的逻辑,每次我访问网站时,这段代码都应该创建一个新的谷歌标签。但由于某些原因,它只在我第一次重新加载扩展时创建Google选项卡。为什么?

哎哟。不,Chrome API事件不是这样工作的。它们不是DOM事件。

阅读此处的文档:https://developer.chrome.com/extensions/events

简而言之,您需要获取事件对象(chrome.history.onVisited)并调用其方法addListener:

chrome.history.onVisited.addListener(callback_function);

此外,请注意:您希望传递对函数本身(callback_function)的引用,而不是其执行结果(callback_function()