3.navigator 对象

每个浏览器中的navigator对象都有一套自己的属性

image
image

1. 检测插件

  • 对于非IE浏览器,可使用plugins数组来达成目的。数组中的每一项都包含下列属性
    • name:插件名
    • description:插件描述
    • filename:插件的文件名
    • length:插件说出你的MIME类型数量
function hasPlugin(name) {
   name = name.toLowerCase();  //将传入的参数name转换为小写
   for (var i = 0; i < navigator.plugins.length; i++) {
       //通过indexOf检测传入的名称是否出现在字符串的某个地方
       if (navigator.plugins[i].name.toLowerCase().indexOf(name) > -1 ) {  
           return true;
       }
   }
   return false;
}
//检测Flash
console.log(hasPlugin("Flash"));
  • 对于IE浏览器,检测插件唯一方式是使用专有的ActiveXObject类型。参数为COM标识符
function hasIEPlugin(name) {
    try {
        new ActiveXObject(name);
        return true;
    } catch (ex) {
        return false;
    }
}
//检测Flash
console.log(hasIEPlugin("ShockwaveFlash.ShockwaveFlash"));

由于两种插件的方法差别太大,故典型做法是针对每个插件分别创建检测函数

function hasFlash(){
    var result = hasPlugin("Flash");
    if (!result) {
        result = hasIEPlugin("ShockwaveFlash.ShockwaveFlash");
    }
    return result;
}

2.注册处理程序

Firefox2为navigator对象新增了registerContentHandler()registerProtocolHandler()两个方法。

registerContentHandler()参数

  • 要处理的MIME类型
  • 可以处理该MIME类型的页面的URL
  • 应用程序的名称

registerProtocolHandler()参数

  • 要处理的协议 (mailto或ftp等)
  • 处理该协议的页面的URL
  • 应用程序的名称
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容