我想知道当用户禁用/删除扩展时是否可以有动作触发器。
可能的行动: 显示HTML页面类型“我们讨厌看到你去。请查看我们的网站”
这样的事情会用于此目的吗?
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(null, {file: "myScript.js"});
});
“myScript.js”持有要在点击时执行的逻辑。
编辑:还发现“如果禁用或卸载扩展程序,则不会触发任何事件”
onUninstalled事件(来自API文档)可能无法帮助我吗?
答案 0 :(得分:2)
正如您在documentation中看到的那样,browserAction.onClicked不能用于此任务。
由于在禁用/删除扩展程序后仍然存在的扩展程序的唯一部分是内容脚本,因此您可以声明定期尝试访问扩展程序的内容脚本,以便失败表明扩展程序已禁用。
这是一个在所有打开的标签页面顶部显示DOM元素的示例:
的manifest.json:
"content_scripts": [{
"matches": ["<all_urls>"],
"run_at": "document_start",
"all_frames": true,
"js": ["ping.js"]
}]
ping.js:
var pingTimer = setInterval(ping, 1000);
function ping() {
var port = chrome.runtime.connect();
if (port) {
port.disconnect();
return;
}
clearInterval(pingTimer);
onDisabled();
}
function onDisabled() {
document.body.insertAdjacentHTML('beforeend',
'<div style="all:unset; position:fixed; left:0; top:0; right:0; height:2rem;' +
' background:blue; color:white; font: 1rem/2rem sans-serif; z-index:2147483647;">' +
'We hate to see you go. Please check our website: ' +
'<a style="all:inherit; color:cyan; display:inline; position:static;"' +
' href="http://example.com">http://example.com</a></div>');
}
注意:
chrome.runtime
能够在禁用扩展程序时幸存下来。答案 1 :(得分:-1)
您好您也可以使用此
chrome.runtime.setUninstallURL('http://myurl', function callback(id) {
console.log("successfully uninstall");
});
}