多次加载后台脚本
Background scripts loaded multiple times
我在扩展清单中声明了两个后台页面,扩展本身是持久的:"背景":{"持久":真的,"scripts":["UrlMonitor.js","background.js"]}
在我的background.js中,我正在创建一个UrlMonitor(在UrlMonitor.js中声明)的实例
var monitor = new UrlMonitor();
在UrlMonitor.js中,事件回调访问了一些全局变量。
var nativePort = null;
var TabInfoKP = new Object();
var TabInfoKPN = new Object();
我注意到调用脚本被多次加载,多次调用
var monitor = new UrlMonitor();
和
var nativePort = null;
var TabInfoKP = new Object();
var TabInfoKPN = new Object();
我希望脚本加载一次并保持在后台,只响应事件回调。我使用全局TabInfoKP来跟踪选项卡状态(通过在事件回调中更新它们)。通过多次初始化,我丢失了变量中先前存储的信息。即使创建/更新了新的选项卡等,也会发生加载。
我是做错了什么,还是这是预期的功能?如果这是预期的功能,我的替代方案是什么?
p.S,我对JS和chrome扩展完全陌生。
好的。。。我设法避免了这种情况的发生。我一直在调试器下运行这个脚本,每次遇到断点,调试结束后,我都会按F5(Visual Studio的旧习惯),这似乎会触发问题。也许运行时正在重新加载脚本并重新开始。
很抱歉遇到这个问题,但今天这件事困扰了我一整天,我所要做的就是将鼠标悬停在chrome调试器上的继续图标上,意识到F5不是指定的快捷键!有人知道在chrome调试器中继续的快捷方式是什么吗?
相关文章:
- 选项卡侦听器未被来自后台脚本的消息激活
- 将图像从后台页面传递给内容脚本javascript
- 使用javascript后台脚本获取Yotutube频道信息
- 在chrome web商店中打开时,是否有允许执行内容/后台脚本的解决方案
- 在后台运行的脚本在出现弹出窗口时会停止
- 在chrome扩展中获取从后台页面到内容脚本的配置
- 使用chrome扩展,如何使用长寿命连接(端口)将消息从后台脚本传递到内容脚本
- Chrome扩展使用后台页面+内容脚本
- Chrome扩展:在后台页面和网站页面脚本之间进行通信的最佳方法
- 为什么chrome.sockets.tcp.create()在应用程序后台脚本中不起作用
- Chrome 打包应用 - 消息从后台传递.js传递到另一个脚本页面
- 将注入的按钮从内容脚本调用到后台.js
- 后台脚本在受限范围内运行的 Chrome 应用
- 如何停止 npm 脚本在后台自动运行
- 如何通过在后台运行安装程序或脚本来安装 NPAPI 插件
- Chrome:同时使用内容和后台脚本不起作用
- 从“选项”弹出窗口中选择一个值,然后将其保存到 Chrome.storage,以便在后台脚本中用作值
- 应用程序后台脚本,访问打开的窗口的元素
- Chrome 扩展程序:无法让消息传递在后台脚本和内容脚本之间正常工作
- 如何在后台获取 chrome 扩展程序的内容脚本