use*_*249 6 javascript firefox opera
如果没有为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 /内容/ blank.gif
或者: 有没有一种简单的方法可以检查Chrome,Firefox和Opera是否安装了扩展程序?
如果扩展愿意合作,它可以轻松地在文档中公布其存在。例如:
扩展可以做
window.$$myExt = ...
Run Code Online (Sandbox Code Playgroud)
然后你可以通过以下方式检测扩展名
if(typeOf $$myExt !== 'undefined'){...
Run Code Online (Sandbox Code Playgroud)
(或其任何变体)
获取页面window至少有点棘手
扩展可以做
document.body.classList.add("myExt-visited")
Run Code Online (Sandbox Code Playgroud)
然后你可以通过以下方式检测扩展名
if(document.body.classList.contains("myExt-visited")){...
Run Code Online (Sandbox Code Playgroud)
扩展可以做
document.body.innerHTML += "<div id='myExt-toolbar'>..."
// or $('body').append("<div id='myExt-toolbar'>...");
Run Code Online (Sandbox Code Playgroud)
那么你可以通过以下方式检测扩展名
if(document.getElementByID("myExt-toolbar")){...
// or if($("#myExt-toolbar").length){...
Run Code Online (Sandbox Code Playgroud)
或者,你可以这样做
<div id="myExt-replacement">
...
Run Code Online (Sandbox Code Playgroud)
扩展就可以了
var replacement = document.getElementByID("myExt-replacement");
replacement && replacement.remove();
Run Code Online (Sandbox Code Playgroud)
或者你可以这样做
function onMyExtExists(){
...
}
Run Code Online (Sandbox Code Playgroud)
扩展就可以了
onMyExtExists && onMyExtExists();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6805 次 |
| 最近记录: |