BOM学习3--navigator对象跨浏览器检测插件

一,检测插件:

  随着互联网的发展,HTML5的标准也成为开发网页的标准,其中比如H5的video标签,就可以直接嵌入到网页成为一个播放器,这就把传统的Flash播放器的功能给取代了。我们在开发不同的项目,可能会依据项目的不同需求,选择使用H5播放器或者Flash插件,这就需要我们在浏览器中识别安装的插件,下面就是一个跨浏览器的插件检测方法:

  1,对于非IE浏览器,我们可以直接使用plugins这个数组来遍历插件,下面是数组每一项包含的属性:

    name: 插件的名字,

    description:插件的描述,

    filename:插件的文件名,

    length:插件所处理的MIME类型数量

  

 1  //检测浏览器的插件 (非IE)
 2     function hasPlugin(name) {
 3         name = name.toLowerCase();   //小写
 4         for(let i=0;i< navigator.plugins.length;i++){
 5             if(navigator.plugins[i].name.toLowerCase().indexOf(name) > -1){
 6                 return true;
 7             }
 8         }
 9         return false;
10     }
11     console.log(‘flash:‘+ hasPlugin(‘flash‘), ‘QuickTime:‘+ hasPlugin(‘QuickTime‘));   

  注意:现在很多的浏览器比如Chrome浏览器都是默认不启用Flash插件的,所以即使在浏览器中安装了Flash插件,如果不手动给予使用权限,那么也是照样访问不到的。

  2,对于IE插件比较麻烦,因为IE浏览器不支持Netscape式的插件,在IE中检测插件的唯一方式就是使用专有的ActiveXObject类型,IE中每个插件都有一个唯一的标识符,所以代码如下:

 1   //IE浏览器的插件检测
 2     function hasIEPlugin(name) {
 3         try{
 4             new ActiveXObject(name);
 5             return true;
 6         }catch (ex){
 7             return false
 8             ;
 9         }
10     }

  注意:IE浏览器中默认是使用Flash的,所以不需要手动选择权限。

  

  3,跨浏览器的插件检测,下面就以检测Flash插件为例:

 

1 //跨浏览器检测插件
2     function hasFlash() {
3         let result = hasPlugin(‘flash‘);
4         if(!result){
5             result = hasIEPlugin(‘ShockwaveFlash.ShockwaveFlash‘);
6         }
7         return result;
8     }

二,

原文地址:https://www.cnblogs.com/braveHead/p/8257575.html

时间: 2024-10-13 06:20:21

BOM学习3--navigator对象跨浏览器检测插件的相关文章

BOM之navigator对象和用户代理检测

前面的话 navigator对象现在已经成为识别客户端浏览器的事实标准,navigator对象是所有支持javascript的浏览器所共有的.本文将详细介绍navigator对象和用户代理检测 属性 与其他BOM对象的情况一样,每个浏览器中的navigator对象也都有一套自己的属性.下表列出了存在于所有浏览器中的属性和方法,以及支持它们的浏览器版本 属性 说明 appCodeName 浏览器名称[所有浏览器都返回Mozilla] userAgent 浏览器的用户代理字符串 appVersion

利用navigator对象在浏览器中检查插件

利用navigator对象在浏览器中检查插件,实现的代码如下. 1 // IE4+.firefox.chrome.safari.opera中,利用navigator检测插件 ,name为插件的名字 2 function hasPlugin(name) { 3 name = name.toLowerCase(); 4 for(var i = 0; i < navigator.plugins.length; i++) { 5 if (navigator.plugins[i].name.toLower

Event对象跨浏览器兼容性写法

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

js事件对象--DOM中的事件对象/IE中的事件对象/跨浏览器的事件对象

事件对象    在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的信息.包括导致事件的元素.事件的类型,以及其他与特定事件相关的信息.例如,鼠标操作导致的事件对象中,会包含鼠标位置的信息,而键盘操作导致的事件对象中,会包含与按下的键有关的信息.所有浏览器对象都支持event对象,但支持方式不同. DOM中的事件对象 兼容DOM的浏览器会将一个event对象传入到事件处理程序中.无论指定事件处理程序时使用什么方法(DOM0级或DOM2级),都会传入event

JS-DOM2级事件对象跨浏览器处理(已封装)

1 var eventUill = { 2 //添加事件 3 addHander: function(element, type, handler) { 4 if(element.addEventListener) { 5 element.addEventListener(type, handler, false); 6 } else if(element.attachEvent) { 7 element.attachEvent('on' + type, handler); 8 } else {

浏览器检测插件-检测Flash

//检测插件 (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

跨浏览器检测某个节点是不是另一个节点的后代

1.通常我们使用contains()方法不通过在DOM文档树中查找即可获得这个消息,传入两个参数,一个是祖先节点另一个是需要检测的后台节点.2.通过compareDocumentPosition()确定节点之间的关系,返回一个表示该关系的位掩码. 掩码 节点关系 1 无关(给定的节点不在当前文档中) 2 居前(给定的节点在DOM树中) 4 居后(给定的节点在DOM树中位于参考节点之后) 8 包含(给定的节点是参考节点的祖先) 16 被包含(给定节点是参考节点的后代) function conta

JavaScript浏览器检测之navigator 对象

一.使用客户端检测的原因 由于每个浏览器都具有自己独到的扩展,所以在开发阶段来判断浏览器是一个非常重要的步骤. 虽然浏览器开发商在公共接口方面投入了很多精力,努力的去支持最常用的公共功能: 但在现实中,浏览器之间的差异,以及不同浏览器的“怪癖”却是非常多的,因此客户端检测除了是一种补救措施,更是一种行之有效的开发策略. 二.navigator 对象概述 navigator 对象最早由 Netscape Navigator2.0 引入的 navigator 对象,现在已经成为识别客户端浏览器的事实

javascript学习------浏览器检测

Navigator对象:浏览器对象 该对象包含了浏览器的整体信息 Navigator对象的属性: appName:返回浏览器的名称 appVersion:返回浏览器的版本号 uerAgent:返回浏览器用于HTTP请求的用户代理头的值 appCodeName:返回浏览器的代码号 platform:返回运行浏览器的操作系统或硬件平台 IE中的Navigator属性: cookieEnabled:检测浏览器是否支持Cookie,如果支持返回TRUE,不支持返回FALSE systemLanguage