Chrome 扩展程序在后台注册事件.js
Chrome Extension Registering Events in Background.js
我的扩展需要为其用户提供一些服务,其部分工作是侦听选项卡创建事件。我所有的 JavaScript 都在弹出窗口中.js并有自我调用:
chrome.tabs.onCreated.addListener(function(tab) {
问题是,如果用户单击扩展符号(如果他打开扩展程序因此激活弹出窗口.js),并且如果弹出屏幕关闭,则扩展程序仅侦听选项卡创建事件,并且如果弹出窗口屏幕关闭,则所有事件侦听都将停止。(我通过写信给控制台来验证它,如果你停下来想一想,这是有道理的)。
我的问题是:我想在扩展程序的整个生命周期中(换句话说,自从用户打开 chrome 以来)收听事件,而不仅仅是在用户弹出扩展程序时。
我知道有一种叫做背景页面的东西,我应该尝试将我的整个代码移到那里吗?我这是后台页面的正常做法?只是事件侦听器依赖于更多的函数和更多的对象,似乎我几乎所有的代码都会去那里。弹出窗口.js将几乎一无所有。另一件事是我不确定是否可以在触发domcontentloaded
事件之前在后台页面中注册事件(并且此事件仅在用户弹出扩展时触发)。
任何帮助将不胜感激!
后台页面是处理这个问题的最佳方式,它在浏览器运行时位于后台。有关更详细的说明,请参阅 http://code.google.com/chrome/extensions/background_pages.html。值得注意的是,它不一定是HTML页面,你可以只有一个脚本文件。
您需要独立于浏览器操作运行的任何内容都应该在后台脚本中;在您单击按钮之前,弹出窗口基本上不存在。您可以在后台脚本和弹出窗口之间传递数据,但如果需要,请查看 http://code.google.com/chrome/extensions/messaging.html。
需要注意的另一件事是,背景页面无法访问 DOM。就此而言.js您的弹出窗口也不会,因此这可能不是问题。
希望这有帮助!
- Chrome 扩展程序在后台注册事件.js
- JQuery没有't在“t”上注册事件;刷新”;元素
- 如何在页面加载后注册事件处理程序
- Javascript:注册事件处理程序的最佳位置
- 如何使用传递给该模板的数据在车把模板中的元素上注册事件
- 在javascript中注册事件侦听器的最有效方法是什么
- 如何在主干视图元素上注册事件
- JavaScript 在外部注册事件处理程序
- Javascript 注册事件侦听器
- 在 Web 辅助角色中注册事件侦听器
- 初始化Angular应用程序后立即注册事件侦听器
- jquery类选择器只在类的第一个元素上注册事件
- 如何为TypeScript声明注册事件处理程序
- 如何为DOM元素注册事件处理程序
- 如何为WebBrowser注册事件处理程序.ScriptNotify事件
- 在Angular中注册事件的最佳方式
- 用JS和Canvas注册事件处理程序
- 使用数组动态注册事件
- 是否可以像这样注册事件处理程序
- 与在For循环中注册事件相关的问题