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阅读器,就可以直接打开文档在浏览器中显示, 但是,当用户没有安装这类软件的时候,自然是打不开的,为了系 ...
随机推荐
- 在EO中获取某字段基于表的列名
//生成EO的时候自动生成的字段 public static final int BRIEFINTRO = 88; String[][] str = null; str = new String[][ ...
- 根据id来实现小程序tab切换,
本例根据绑定id来实现tab切换,但本例仍有缺陷,用for循环数据,无法实现切换.如有大神能够有更好方法,欢迎留言更正 WXML: <view class="tab"> ...
- PHP:第四章——数组中的排序函数
<pre> <?php header("Content-Type:text/html;charset=utf-8"); //1) /*sort - 对数组进行升序 ...
- 所谓的规范以及JDK api文档的重要性
所谓的规范,就是在jee api 文档里对应的接口. 可以从jdk文档和jee文档的目录结构,接口中获取对整个编程范围的把握
- JS实现点击按钮,下载文件
PS:本文说的,并非如何用js创建流.创建文件.实现下载功能. 而是说的:你已知一个下载文件的后端接口,前端如何请求该接口,实现点击按钮.下载文件到本地.(可以是zip啦.excel啦都是一样) 有两 ...
- webservice之wsdl
最近项目中需要将原来的通信协议改成webservice,由于业务需要,我们需要向server端传送数据,故server方提供给我们一个.wsdl文件,内容如下: WSDL即Web Services D ...
- 在 windows 开发 reactNative 的环境 搭建过程 react-native-android
安装的东西挺多的, 从 jdk 到c++环境 到node , python, 各种模拟器 http://bbs.reactnative.cn/topic/10/%E5%9C%A8windows%E4% ...
- Linux:挂载
挂载
- A+B for Input-Output Practice (VIII)
A+B for Input-Output Practice (VIII) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/3276 ...
- CentOS 7关闭图形桌面开启文本界面
1,命令模式systemctl set-default multi-user.target 2,图形模式systemctl set-default graphical.target CentOS 7 ...