JavaScript检查是否安装了Chrome、Firefox和Opera的浏览器扩展

JavaScript check if browser extension is installed for Chrome, Firefox and Opera

本文关键字:Opera 浏览器 扩展 Firefox 是否 检查 安装 Chrome JavaScript      更新时间:2023-09-26


我想显示自定义栏(通知像:安装我们的插件。)在我们的网站,如果扩展没有安装 Chrome, Firefox和Opera。如果安装了扩展,则显示为None。

这个想法是:
1. 用户访问我们的网站和消息栏出现-"嘿,安装我们的扩展"。
2. 用户单击安装并安装扩展。不需要用户打开它。
3.用户再次访问我们的网站和酒吧不出现再次作为扩展安装。
我们只讨论安装检查,不讨论cookie

到目前为止,我只能找到Chrome的解决方案:http://blog.kotowicz.net/2012/02/intro-to-chrome-addons-hacking.html
和Firefox: http://webdevwonders.com/detecting-firefox-add-ons/
歌剧从未被提及。

是否有一种方法可以为Opera做到这一点,基于检查本地资源的想法,这是扩展的一部分:
chrome-extension://——Extension ID——/blank.gif
Firefox chrome://firebug/content/blank.gif

,否则:是否有一个简单的方法来检查是否安装了Chrome, Firefox和Opera扩展?

如果扩展愿意合作,它可以很容易地向文档发布它的存在。例如:


<罢工>扩展可以做

window.$$myExt = ...

则可以通过

检测扩展名
if(typeOf $$myExt !== 'undefined'){...

(或其任何变体)

获取window页至少有点棘手


扩展可以做

document.body.classList.add("myExt-visited")

则可以通过

检测扩展名
if(document.body.classList.contains("myExt-visited")){...

扩展可以做

document.body.innerHTML += "<div id='myExt-toolbar'>..."
// or $('body').append("<div id='myExt-toolbar'>...");

则可以通过

检测扩展名
if(document.getElementByID("myExt-toolbar")){...
// or if($("#myExt-toolbar").length){...

或者,您可以使用

<div id="myExt-replacement">
   ...

和扩展将做

var replacement = document.getElementByID("myExt-replacement");
replacement && replacement.remove();

或者

function onMyExtExists(){
  ...
}

和扩展将做

onMyExtExists && onMyExtExists();