商城网站建设实例需求,凡科网站建站,静海网站建设制作,手机网站建站教育模板由于安全限制#xff0c;本文采取间接的方式实现 1、项目部分 比如通过cookie、localStorage等进行状态存储 1.1、初始化判断
function getCookie(name){let arr document.cookie.match(new RegExp((^| )name([^;]*)(;|$)))if(arr ! null){return u… 由于安全限制本文采取间接的方式实现 1、项目部分 比如通过cookie、localStorage等进行状态存储 1.1、初始化判断
function getCookie(name){let arr document.cookie.match(new RegExp((^| )name([^;]*)(;|$)))if(arr ! null){return unescape(arr[2])}else{return null}
}let _isChromePluginInstall getCookie(chrome-plugin);
if(_isChromePluginInstall _isChromePluginInstallY){// 已安装插件
}else{// 未安装插件
}1.2、卸载状态变更
function getQueryString(name) {var reg new RegExp((^|) name ([^]*)(|$), i);var r window.location.search.substr(1).match(reg);if (r ! null) {return unescape(r[2]);}return null;
}let _on getQueryString(on)
if(_on _on uninstalled){// 修改插件安装状态// 其他业务处理
}2、Chrome Extensions部分 在background.js中进行安装、卸载事件监听 2.1、安装事件监听
/*** 首次安装扩展程序、扩展程序更新到新版本以及 Chrome 更新到新版本时触发* link https://developer.chrome.com/docs/extensions/reference/runtime/#event-onInstalled*/
chrome.runtime.onInstalled.addListener(function () {setTimeout(function () {// 对目标项目进行cookie写入const _cf {name: chrome-plugin,value: Y,url: http://xxxx.xxx,domain: xxxx.xxx}chrome.cookies.set(_cf, function (res) {// ...});}, 1000)})
2.2、卸载事件监听
/*** 转跳至目标项目地址进行状态变更、统计等事务处理* link https://developer.chrome.com/docs/extensions/reference/runtime/#method-setUninstallURL*/
chrome.runtime.setUninstallURL(${SysConfig.APP_URL}/#?onuninstalled, (){})Ps management权限的监听事件似乎无法对安装、卸载起到作用具体原因不清楚还有待研究。 有兴趣的小伙伴也可以研究研究官方文档地址https://developer.chrome.com/docs/extensions/reference/management/