如何使 chrome 分机永久有效
How to make chrome extension active permanent
我正在 chrome 中构建一个扩展,但如果我不打开插件的调试模式,它总是处于非活动状态,这会导致当我进入目标页面时插件无法正常工作,例如:dms.mydomain-inc.com
如何在manifest.json
访问页面注册时使其永久有效?
这是我的 manifest.json
{
"name": "Tool for test",
"description": "Build an Extension!",
"version": "1.0",
"manifest_version": 3,
"background": {
"service_worker": "background.js",
"persistent": true
},
"options_page": "options.html",
"permissions": ["storage",
"activeTab",
"scripting",
"webRequest"],
"host_permissions": [
"*://*.mydomain.vn/*",
"*://dms.mydomain-inc.com/",
"wss://news.mydomain-inc.com/"
],
"content_scripts": [
{
"matches": ["*://news.mydomain-inc.com/"],
"css": ["css/style.css"],
"js": ["contentScript.js", "jquery-3.5.1.min.js"]
}
],
"action": {
"default_popup": "popup.html",
"default_icon": {
"16": "/images/get_started16.png",
"32": "/images/get_started32.png",
"48": "/images/get_started48.png",
"128": "/images/get_started128.png"
}
},
"icons": {
"16": "/images/get_started16.png",
"32": "/images/get_started32.png",
"48": "/images/get_started48.png",
"128": "/images/get_started128.png"
}
}
谢谢
开发清单版本 3 扩展是正常的事情。
Chrome 正在成为一款轻巧的浏览器,部分原因是用户安装了数十个扩展。
因此 Google 在扩展中引入了 service worker 以便尽可能释放一些内存。
SW 在必要时被激活,然后进入休眠状态,直到它被唤醒以执行新工作。
这样说,
- "persistent": true 清单中的内容无用,可能会产生错误。
- 我们必须意识到,当 SW 变为非活动状态时,此脚本中定义的所有变量和对象都将丢失,除非我们计划以某种方式将它们保存在持久性存储中。
通常,异步chrome.storageAPI用于保存SW中使用的变量\对象
- 如果您不能让 SW 变为非活动状态(出于某些重要原因),您可以使用绕过此“限制”的“肮脏”技术。
该技术包括打开一个持久的通信通道并在 SW 和任何浏览器选项卡之间发送虚构的消息。
有关此技术的更多详细信息,请阅读此线程:
我正在 chrome 中构建一个扩展,但如果我不打开插件的调试模式,它总是处于非活动状态,这会导致当我进入目标页面时插件无法正常工作,例如:dms.mydomain-inc.com
如何在manifest.json
访问页面注册时使其永久有效?
这是我的 manifest.json
{
"name": "Tool for test",
"description": "Build an Extension!",
"version": "1.0",
"manifest_version": 3,
"background": {
"service_worker": "background.js",
"persistent": true
},
"options_page": "options.html",
"permissions": ["storage",
"activeTab",
"scripting",
"webRequest"],
"host_permissions": [
"*://*.mydomain.vn/*",
"*://dms.mydomain-inc.com/",
"wss://news.mydomain-inc.com/"
],
"content_scripts": [
{
"matches": ["*://news.mydomain-inc.com/"],
"css": ["css/style.css"],
"js": ["contentScript.js", "jquery-3.5.1.min.js"]
}
],
"action": {
"default_popup": "popup.html",
"default_icon": {
"16": "/images/get_started16.png",
"32": "/images/get_started32.png",
"48": "/images/get_started48.png",
"128": "/images/get_started128.png"
}
},
"icons": {
"16": "/images/get_started16.png",
"32": "/images/get_started32.png",
"48": "/images/get_started48.png",
"128": "/images/get_started128.png"
}
}
谢谢
开发清单版本 3 扩展是正常的事情。 Chrome 正在成为一款轻巧的浏览器,部分原因是用户安装了数十个扩展。 因此 Google 在扩展中引入了 service worker 以便尽可能释放一些内存。 SW 在必要时被激活,然后进入休眠状态,直到它被唤醒以执行新工作。
这样说,
- "persistent": true 清单中的内容无用,可能会产生错误。
- 我们必须意识到,当 SW 变为非活动状态时,此脚本中定义的所有变量和对象都将丢失,除非我们计划以某种方式将它们保存在持久性存储中。 通常,异步chrome.storageAPI用于保存SW中使用的变量\对象
- 如果您不能让 SW 变为非活动状态(出于某些重要原因),您可以使用绕过此“限制”的“肮脏”技术。
该技术包括打开一个持久的通信通道并在 SW 和任何浏览器选项卡之间发送虚构的消息。
有关此技术的更多详细信息,请阅读此线程: