仅适用于 Chrome 扩展程序中特定域的后台脚本

2023-12-13

我想知道如何仅针对特定/指定域运行 Chrome 扩展程序的后台脚本?

例如,如果扩展程序仅在 Google.com 的页面上运行,则没有理由让后台脚本在任何其他域上运行。

在我的清单文件中,我设置了“匹配”,但我仍然可以看到后台脚本在每个域和选项卡上运行。

...

"background": {
    "matches": [
        "*://*.google.com/*"
    ],
    "scripts": ["scripts/background.js"],
    "persistent": false
},

"content_scripts": [
    {
        "matches": [
            "*://*.google.com/*"
        ],
        "css": ["styles/default.css"],
        "js": ["scripts/jquery.js", "scripts/default.js"]
    }
],

"permissions": [
    "storage",
    "declarativeContent",
    "tabs"
],

...

Edit
添加更多有助于理解我的目标的信息:
我有一个内容脚本和一个弹出窗口,弹出窗口被用作远程控制,其中包含可供选择和使用的选项,最终将影响页面。
当更改弹出窗口中的选项时,它将其值发送到后台/事件脚本,临时保存在变量中,然后发送到内容脚本,在内容脚本中实际执行并显示在页面上用户。
我希望只有当用户离开特定域时,后台/事件脚本才会将设置保存到存储中,这样就只有一个存储保存任务,而不是每次用户在弹出窗口中更改设置时。
设置保存到存储并且用户离开后,我不想再在后台运行它了。


您误解了背景页的用途和用途"persistent": false means.

后台页面不“针对”任何域运行;它只是运行。每个扩展一个副本。看看架构概述.

但是,如果您担心它消耗资源,您可以添加"persistent": false到清单。这使其成为活动页面,当它不工作时被卸载。

如果您的活动页面仅由内容脚本唤醒,那么您就达到了您的目标:不需要时它不会运行。

正确构建后台页面完全取决于您,以便在您不需要它时它处于空闲状态。既然你还没有告诉它应该做什么 - 好吧..

请阅读活动页面文档,您需要了解一些重要的限制。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅适用于 Chrome 扩展程序中特定域的后台脚本 的相关文章

随机推荐