我希望在我的网页中检测是否启用了Chrome扩展程序(在被禁用或相反之后。
我想在网页中了解Chrome扩展程序的启用/禁用状态。
我很抱歉我不会说英语。 但我确实想知道这个问题的答案。 谢谢。
答案 0 :(得分:0)
唯一接近的Chrome API是chrome.management
,但它不会为您自己的扩展程序调用{{3}}事件侦听器,无论如何,您无法从网页中使用它。
所以这是一个解决方法。
在您的页面上定期发送自定义事件:
var extensionIsEnabled = false;
var messageTimeout;
function pingExtension() {
document.dispatchEvent(new CustomEvent("pingMyExtension", {detail: "hello there"}));
messageTimeout = setTimeout(function() { extensionIsEnabled = false; }, 1000);
}
document.addEventListener("pingbackFromMyExtension", function(e) {
clearTimeout(messageTimeout);
extensionIsEnabled = true;
console.log("extension is alive!", e);
}
setInterval(pingExtension, 1000);
在您的扩展程序的内容脚本中,manifest.json中允许此页面的URL:
document.addEventListener("pingMyExtension", function(e) {
console.log("ping received", e);
document.dispatchEvent(new CustomEvent("pingbackFromMyExtension", {detail: "hi, hi"}));
}