Javascript chrome.runtime.onInstalled.addListener清单版本3从版本2迁移
我有一个2年的Gmail chrome扩展,我正在更新到第3版。 我使用iframes将JSON数据传输到服务器或从服务器传输JSON数据,这在使用版本2或3时运行良好 我遇到的问题是background.js(适用于版本2)Javascript chrome.runtime.onInstalled.addListener清单版本3从版本2迁移,javascript,google-chrome,google-chrome-extension,service-worker,Javascript,Google Chrome,Google Chrome Extension,Service Worker,我有一个2年的Gmail chrome扩展,我正在更新到第3版。 我使用iframes将JSON数据传输到服务器或从服务器传输JSON数据,这在使用版本2或3时运行良好 我遇到的问题是background.js(适用于版本2) //background.js在安装或刷新扩展时重新加载gmail chrome.runtime.onInstalled.addListener(函数(){ chrome.tabs.query({url:https://mail.google.com/*“},函数(选项卡
//background.js在安装或刷新扩展时重新加载gmail
chrome.runtime.onInstalled.addListener(函数(){
chrome.tabs.query({url:https://mail.google.com/*“},函数(选项卡){
if(typeof选项卡[0].url!=“未定义”&&tab[0].url.indexOf('https://mail.google.com') == 0 ) {
chrome.tabs.reload(tab[0].id);
}
});
});
在清单V2中声明如下:
“背景”:{
“脚本”:[“background.js”],
“持久”:false//true
},
在清单V3中,我们现在必须使用服务工作者:
“背景”:[{
“服务工人”:“background.js”
}],
有两个问题:
谢谢。听起来你是这篇写得很差的文档文章的受害者:作者是一名web开发人员,似乎认为有必要强调服务人员是不同的、更好的东西,而它在概念上与(也称为“非持久性背景脚本”)相同这些年来我们一直在使用的 由于您已经在使用事件页面,您只需继续执行以前的操作:注册API事件处理程序,如chrome.runtime.onInstalled或chrome.tabs.onUpdated,以便chrome在内部记住注册。当worker在30秒不活动后终止时,如果您订阅的事件发生,Chrome将启动worker,整个脚本将再次运行,然后将调用您的侦听器。重申一下,这与事件页面的工作原理完全相同 注意:您的服务人员代码错误地添加了
[
和]
。以下是正确的代码:
“背景”:{
“服务工人”:“background.js”
},
如下所示:
chrome.tabs.query({url:https://mail.google.com/*“},函数(选项卡){
“标签”未定义,所以我添加了
“权限”:[“选项卡],
到清单和所有作品好!奇怪的是使用版本2我不需要这个权限
还要感谢@wOxxOm为我指明了正确的方向