JS 检测浏览器中是否安装了特定的插件
1、检测非IE浏览器
可以使用plugins数组来达到这个目的,例:
//检测插件(在IE中无效)
function hasPlugin(name){
name = name.toLowerCase();
for(var i=0;i<navigator.plugins.length;i++)
{
if(navigator.plugins[i].name.toLowerCase().indexOf(name)>-1)
{
return true;
}
}
return false;
}
//检测Flash
alert(hasPlugin("Flash"));
2、检测IE浏览器
因为IE不支持Netscape式的插件。在IE中检测插件唯一的方式就是使用专有的ActiveXObject类型,并尝试创建一个特定插件的实例。IE是以COM对象的方式使用插件的,而COM对象使用唯一标识符来标识。因此,要检查特定的插件就必须知道其特定的标识符。如Flash的标识符是ShockwaveFlash.ShockwaveFlash。
//检测IE中的插件
function hasIEPlugin(name)
{
//用try-catch进行实例化,因为创建未知的COM对象会导致抛出错误,如果实例化成功返回true,否则抛出异常返回false
try {
new ActiveXObject(name);
return true;
} catch (ex) {
return false;
}
}
//根据Flash标识符,检测Flash插件
alert(hasIEPlugin("ShockwaveFlash.ShockwaveFlash"));
3、检测所有浏览器
先使用不针对IE的检测插件的方法,再使用针对IE的检测插件的方法,只要任何一个方法检测到将会返回true,否则返回false。
//检测所有浏览器中的Flash
function hasFlash()
{
var result = hasPlugin("Flash");//先检测非IE浏览器
if(!result)
{
result = hasIEPlugin("ShockwaveFlash.ShockwaveFlash");//再检测IE
}
return result;
}
//检测Flash
alert(hasFlash());
JS 检测浏览器中是否安装了特定的插件的更多相关文章
- js检测浏览器中是否安装了flash播放插件
这两天工作中需要在网页中嵌入flash小游戏,我使用的是swfobject.js version:1.5.其他方面都很好,唯独版本检测这里一直没有搞通,后来实在无奈之下,改用js来检测浏览器的flas ...
- navigator,JS检测浏览器插件
最早由Netscape Navigator 2.0引入的navigator对象,现在已经成为识别客户端浏览器的事实标准.虽然其它浏览器也通过其它方式提供了相同或相似的信息(例如,IE中的window. ...
- 检测手机中是否安装了google地图,没有则提示安装,并跳转到地图查找特定的地点
/** * 检测手机中是否安装了某个特定的app,若没有提示安装 */ PackageInfo name_2 = null; try { // 若没有这个包名会异常 name_2 = getPacka ...
- Elasticsearch.js 发布 —— 在Node.js和浏览器中调用Elasticsearch(1)
继PHP.Ruby.Python和Perl之后,Elasticsearch最近发布了Elasticsearch.js,Elasticsearch的JavaScript客户端库.可以在Node.js和浏 ...
- Elasticsearch.js 发布 —— 在Node.js和浏览器中调用Elasticsearch
继PHP.Ruby.Python和Perl之后,Elasticsearch最近发布了Elasticsearch.js,Elasticsearch的JavaScript客户端库.可以在Node.js和浏 ...
- jquery和js检测浏览器窗口尺寸和分辨率
jquery和js检测浏览器窗口尺寸和分辨率,转载自网络,记录备忘 <script type="text/javascript">$(document).ready(f ...
- js 在浏览器中的event loop事件队列
目录 前言 认识一个栈两个队列 执行过程 异步任务怎么分配 简单例子 难一点的例子 前言 以下内容是js在浏览器中的事件队列执行,与在nodejs中有所区别,请注意. 都说js是单线程的,不过它本身其 ...
- win10下通过编译源码方式在chrome中成功安装react-devtools开发工具插件
win10下通过编译源码方式在chrome中成功安装react-devtools开发工具插件 1.去git上下载react-devtools文件到本地,https://github.com/fac ...
- JS检测浏览器Adobe Reader插件
Web应用中当我们希望向用户显示pdf文档时候,如果用户安装了Adobe Reader之类的pdf阅读器,就可以直接打开文档在浏览器中显示, 但是,当用户没有安装这类软件的时候,自然是打不开的,为了系 ...
随机推荐
- Windows各种各种消息投递函数
1.SendMessage:发送消息给指定的窗口过程:直到窗口过程处理了消息才返回. 2.PostMessage:将消息放入消息队列(与指定窗口创建的线程相关)中:无需等待消息处理,立即返回. 不 ...
- 最新小程序教学视频,欢迎加小程序交流群免费获取(微信小程序开发(交流QQ群:604788754)
本群会定期分享在工作中做的一些小程序页面,不懂之处也可以随时咨询,可以互相交流学习. 教学视频直接入群,在群公告中显示,优秀小程序代码在群文件中免费获取. 今日代码小程序首页欢迎页面,效果图如下.代码 ...
- PADS Layout如何进行“ECO对比更新”
我们在画PCB中,经常会遇到要修改封装等操作.不推荐直接在pcb中非ECO模式下修改,这样会和orcad原理图不同步.我们采用修改orcad原理图,然后由pads layout软件来自动修改pads ...
- 1011 A+B 和 C
给定区间 [-2^31, 2^31] 内的 3 个整数 A.B 和 C,请判断 A+B 是否大于 C. 输入格式: 输入第 1 行给出正整数 T (≤10),是测试用例的个数.随后给出 T 组测试用 ...
- 三步解决 vue 按需加载
1 webpack 的 output 配置 chunkFleName 树干名称: " chunks/[name]-[chunkhash:8].js " 这一步是配合第三步, 生 ...
- 建立自己的javaBean --成功
1.用记事本新建一个java 程序,文件名为TestBean.java ,文件内容如下: package test; public class TestBean{ private String nam ...
- PLsql登录数据库提示密码即将过期-
小哥询问,PL*SQL用户登录后弹出警告:咋整? ORA-28002:the password will expire within 7 days密码在7天内将到期 do you wish to ch ...
- CF1093:E. Intersection of Permutations(树状数组套主席树)
题意:给定长度为N的a数组,和b数组,a和b都是1到N的排列: 有两种操作,一种是询问[L1,R1],[L2,R2]:即问a数组的[L1,R1]区间和b数组的[L2,R2]区间出现了多少个相同的数字. ...
- BZOJ4481: [Jsoi2015]非诚勿扰【概率期望+树状数组】
Description [故事背景] JYY赶上了互联网创业的大潮,为非常勿扰开发了最新的手机App实现单身 大龄青年之间的"速配".然而随着用户数量的增长,JYY发现现有速配的算 ...
- PHP webservice初探
背景:在最近的开发中,为了解决公司内部系统与外部系统的对接,开始接触到了webservice接口,外部公司提供接口供我们调用,已达到数据同步的目的,因此有必要普及一下web service的知识了! ...