javascript之BOM对象(三其他对象)

Posted 生如夏花2017

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript之BOM对象(三其他对象)相关的知识,希望对你有一定的参考价值。

一、navigator对象

navigator使用来识别浏览器的,是所有支持javascript的浏览器所共有的。与BOM的其他对象不同,每个浏览器的navigator对象都有一套自己的属性。

常见的属性名称:

appName 完整的浏览器名称

cookieEnabled 表示cookie是否启用

onLine 浏览器是否联网

platform 浏览器所在的系统平台

plugins 浏览器所安装的插件信息的数组

preference() 用户的首选项

userLanguage 浏览器的默认语言

1、检测插件

对于非IE浏览器可以使用plugins数组进行检查,该数组的每一项都包含了一下属性 :

  • name 插件名称
  • description 插件描述
  • filename 插件文件名
  • length 插件所处理的MIME类型数量
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;
      }
      alert(hasPlugin("Flash"));

通过navigator.plugins数组得到了插件数组,然后在插件数组中查询是否对应的插件名。

 

对于IE浏览器的插件检测方法:

在IE中检测插件的唯一方式就是试用ActiveXObject类型,并尝试创建特定插件的实例。IE是以COM对象来检测插件的,COM对象是以唯一标识符来确定对象的。

Flash插件的唯一表示符为:ShockwaveFlash.ShockwaveFlash

function  hasIEPlugin(name)
      {
        try{
          new ActiveXObject(name);
          return true;
        }catch(ex)
        {
          return false;
        }

      }
      alert(hasIEPlugin("ShockwaveFlash.ShockwaveFlash"));

由于两种差别太大,所以通常采用针对特定插件做检测算法

//检测所有浏览器的Flash插件
      function hasFlush()
      {
        var result=hasPlugin("Flush");
        if(!result)
        {
          result=hasIEPlugin("ShockwaveFlash.ShockwaveFlash");
        }
        return result;
      }

首先是对所有浏览器都采用hasPlugin函数检测如果返回true就不用再检测IE因为IE已经用hasPlugin检测过了,否则要专门对IE进行检测。

2、注册处理程序:

navigator.registerContentHandler(mimeType, uri, title);//接收三个参数,要处理的MIME类型,可以处理该MIME类型的页面的URL以及应用程序的名称
navigator.registerProtocolHandler(protocol, url, title);//接收三个参数,协议名称,可以处理相应请求的页面的URL以及应用程序的名称

这两个方法可以让一个站点指明可处理的类型。

 

二、screen对象

screen对象包含着浏览器窗口外显示器的信息,每个浏览器的screen对象都包含有不同的属性

三、history对象

history对象保存用户上网的历史记录,从浏览器窗口打开的时候算起。history是window的属性,每一个窗口或者框架都有一个history对象。

go();方法,接收一个整数值或者字符串,表示前进或者后退的页数或者前往的页面

history.forward();前进1页

history.back();后退1页

以上是关于javascript之BOM对象(三其他对象)的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript系列之Web API篇

javascript的浏览器Bom详解

理解JavaScript中BOM和DOM的关系

JavaScript之BOM

javaScript之DOM,BOM

javascript-之-BOM 浏览器对象模型( BOM 的核心--window)