在使用 Chrome 扩展后,我注意到当您位于
chrome://extensions
页面上时,清单文件中启动的后台脚本将运行,就好像您只是在浏览互联网或在扩展页面之外的其他页面上一样,后台脚本将运行不会运行。
这就是我的意思:
在我的清单文件中:
"background": {
"scripts": ["jquery-latest.js","background.js"]
},
现在在
background.js
文件中:
$(document).ready(function(){
alert("working");
});
我使用一个简单的警报功能来查看这是否有效,并发现仅当我位于
alert("working");
目录时才会显示 chrome://extension
。如果我访问 google.com 或类似网站,就不会抽雪茄。
我的问题在于,为什么会发生这种情况?我该如何更改它,以便无论如何它都会发出警报。
后台脚本应被视为“在 Chrome 浏览器的后台运行”。
您想要的效果(为每个页面运行脚本)实际上是内容脚本的任务。
要了解更多信息,请阅读 https://developer.chrome.com/extensions/overview.html#arch。
因为你使用的是后台页面..稍微修改一下manifest.json就可以使用事件页面.. 尝试添加这个:
"background": {
"scripts": ["jquery-latest.js","background.js"],
"persistent": false
},
有关活动页面的更多详细信息,请查看:https://developer.chrome.com/extensions/event_pages
chrome://extensions
时,它都会强制重新加载扩展,使用 CTRL+R 可以重现相同的行为。因此,每次后台页面都会重新加载,而其他页面则不会发生这种情况。
chrome.browserAction.addListener(myFunction)
会播放该功能)命令以查明按钮是否已被按下或甚至从后台脚本将消息发送到页面的控制台。
https://youtu.be/ew9ut7ixIlI
这个视频对我来说是关于背景脚本的一个很好的介绍,但是,他开始谈论听众的部分是6:30
。