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

时间:2015-03-29 23:15:29

标签: javascript google-chrome google-chrome-extension

所以我试图编写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标签。那是为什么?

1 个答案:

答案 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()