我想在我们的网站上显示自定义栏(通知如:安装我们的插件。)如果未安装扩展程序,则适用于Chrome,Firefox和Opera。如果安装了扩展程序,则无显示。
想法是:
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从未被提及。
基于检查作为扩展的一部分的本地资源的想法,有没有办法为Opera做到这一点:
chrome-extension:// - 扩展名ID - / blank.gif
Firefox chrome://firebug/content/blank.gif
否则: 是否有一种简单的方法可以检查Chrome,Firefox和Opera是否已安装扩展程序?
答案 0 :(得分:4)
如果扩展程序愿意合作,它可以轻松地向文档广告其存在。例如:
<击> 扩展可以
window.$$myExt = ...
然后您可以通过
检测扩展名if(typeOf $$myExt !== 'undefined'){...
(或其任何变体)
击>
获取网页window
是somewhat tricky at least
扩展程序可以
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();