所以我试图编写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
会创建包含指定网址的新标签。如果我理解正确,那么"事件监听器"等待事件被触发,并在事件被触发时运行回调函数。
因此,按照我的逻辑,每次访问网站时,此代码都应创建一个新的Google标签。但由于某些原因,它只会在我第一次重新加载扩展程序时创建Google标签。那是为什么?
答案 0 :(得分:4)
哎哟。不,这不是Chrome API事件的工作原理。它们不是DOM事件。
请阅读此处的文档:https://developer.chrome.com/extensions/events
简而言之,您需要获取事件对象(chrome.history.onVisited
)并调用其方法addListener
:
chrome.history.onVisited.addListener(callback_function);
另外,请注意:您希望传递对函数本身的引用(callback_function
),而不是其执行结果(callback_function()
)