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

来源:互联网 发布:淘宝流量充值怎么开店 编辑:程序博客网 时间:2024/05/16 14:53

一、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页