在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创建一个新选项卡。如果我理解正确的话,"事件侦听器"会等待事件被激发,并在事件被激发时运行回调函数。
因此,按照我的逻辑,每次我访问网站时,这段代码都应该创建一个新的谷歌标签。但由于某些原因,它只在我第一次重新加载扩展时创建Google选项卡。为什么?
哎哟。不,Chrome API事件不是这样工作的。它们不是DOM事件。
阅读此处的文档:https://developer.chrome.com/extensions/events
简而言之,您需要获取事件对象(chrome.history.onVisited
)并调用其方法addListener
:
chrome.history.onVisited.addListener(callback_function);
此外,请注意:您希望传递对函数本身(callback_function
)的引用,而不是其执行结果(callback_function()
)
相关文章:
- 如何在for循环中添加事件侦听器
- 如果选中了多个复选框,如何添加事件
- 正在ng重复元素上添加事件
- 在动态创建的标记上添加事件
- 如何在HTML列表中添加事件's子弹
- 将事件侦听器添加到文档,而不是签入元素存在,然后添加事件侦听器
- jQuery完整日历添加事件,仅包含月份和日期
- 是否可以在数字输入框中的小按钮中添加事件侦听器
- 在Google Chrome扩展中添加事件侦听器
- AngularJS:在.post()之后添加事件侦听器
- 对象 Javascript 中的标签无效 - 想要添加事件列表器
- 添加事件侦听器不起作用
- 如何为angular js条形图添加事件
- 在 http 请求中添加事件侦听器 ( request.on ) 是什么意思?而笏就是它的用途
- Iron:路由器在更改路由器上添加事件
- 如何为表行结果的每个按钮添加事件侦听器
- 在 javascript 中添加事件处理程序的位置
- YouTube API-动态添加事件侦听器
- 在聚合物的子菜单标题中添加事件
- 检查是否可以添加事件侦听器而不添加