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

Adding event listeners in Google Chrome extensions

所以我正在尝试编写一个 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 创建一个新选项卡。如果我理解正确,"event listener" 等待事件被触发,并在事件被触发时运行回调函数。

所以按照我的逻辑,这段代码应该在我每次访问网站时创建一个新的 Google 选项卡。但出于某种原因,它只在我第一次重新加载扩展时创建 Google 选项卡。这是为什么?

哎呀。不,这不是 Chrome API 活动的运作方式。它们不是 DOM 事件。

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

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

chrome.history.onVisited.addListener(callback_function);

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