如何在网页中检测是否已启用Chrome扩展程序(禁用后)

时间:2015-07-29 05:10:48

标签: javascript google-chrome google-chrome-extension

我希望在我的网页中检测是否启用了Chrome扩展程序(在被禁用或相反之后。

我想在网页中了解Chrome扩展程序的启用/禁用状态。

我很抱歉我不会说英语。 但我确实想知道这个问题的答案。 谢谢。

1 个答案:

答案 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"}));
}