在 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()
)
所以我正在尝试编写一个 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()
)