Google Chrome 扩展 - 后台脚本

问题描述 投票:0回答:5

在使用 Chrome 扩展后,我注意到当您位于

chrome://extensions
页面上时,清单文件中启动的后台脚本将运行,就好像您只是在浏览互联网或在扩展页面之外的其他页面上一样,后台脚本将运行不会运行。

这就是我的意思:

在我的清单文件中:

"background": {
    "scripts": ["jquery-latest.js","background.js"]
  },

现在在

background.js
文件中:

$(document).ready(function(){
    alert("working");
});

我使用一个简单的警报功能来查看这是否有效,并发现仅当我位于

alert("working");
目录时才会显示
chrome://extension
。如果我访问 google.com 或类似网站,就不会抽雪茄。

我的问题在于,为什么会发生这种情况?我该如何更改它,以便无论如何它都会发出警报。

google-chrome google-chrome-extension
5个回答
35
投票

后台脚本应被视为“在 Chrome 浏览器的后台运行”。
您想要的效果(为每个页面运行脚本)实际上是内容脚本的任务。

要了解更多信息,请阅读 https://developer.chrome.com/extensions/overview.html#arch


4
投票

因为你使用的是后台页面..稍微修改一下manifest.json就可以使用事件页面.. 尝试添加这个:

"background": {
    "scripts": ["jquery-latest.js","background.js"],
    "persistent": false
  },

有关活动页面的更多详细信息,请查看:https://developer.chrome.com/extensions/event_pages


2
投票
产生这种效果是因为每当您加载

chrome://extensions

 时,它都会强制重新加载扩展,使用 CTRL+R 可以重现相同的行为。因此,每次后台页面都会重新加载,而其他页面则不会发生这种情况。 


1
投票
后台脚本是在后台运行的脚本,用于处理内容脚本无法处理的大多数 chrome 事件。内容脚本纯粹是每个页面的内容。两者不能互相对话,但是,您可以为脚本侦听器提供命令(例如,当单击扩展程序屏幕右上角的按钮时,

chrome.browserAction.addListener(myFunction)

 会播放该功能)命令以查明按钮是否已被按下或甚至从后台脚本将消息发送到页面的控制台。 

https://youtu.be/ew9ut7ixIlI 这个视频对我来说是关于背景脚本的一个很好的介绍,但是,他开始谈论听众的部分是6:30


0
投票
“背景”:{ "service_worker": "background.js", “类型”:“模块” },

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.