在网页中,如何检测浏览器中是否加载了特定扩展名?

时间:2016-10-31 15:35:21

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

我被要求向用户显示一个弹出窗口,如果他至少有五分之一的扩展名。

扩展名为:adblock plusadBlockDisconnect等...

我不熟悉所有扩展及其对DOM的影响(adblock plus除外)所以我正在寻找一个函数,如果它存在于浏览器中,它将通过扩展ID进行检查?

我试过了:

var detect = function(base, if_installed, if_not_installed) {
    var s = document.createElement('script');
    s.onerror = if_not_installed;
    s.onload = if_installed;
    document.body.appendChild(s);
    s.src = base + '/manifest.json';
}
detect('chrome-extension://' + 'gcbommkclmclpchllfjekcdonpmejbdp', function() {alert('boom!');});

我从哪来得到:http://blog.kotowicz.net/2012/02/intro-to-chrome-addons-hacking.html,他说它有效,但我收到了这个错误:

  

必须在web_accessible_resources清单键中列出资源   为了通过扩展名以外的页面加载。

2 个答案:

答案 0 :(得分:1)

该扩展可能会更改HTML标头或DOM中的至少某些内容。因此,弄清楚可能会发生什么变化并使用JS来检测。

如果那不好,请看一下。
Check whether user has a Chrome extension installed

答案 1 :(得分:-1)

您可以使用window.location.protocol

检查当前协议