• 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页

  • 相关阅读:
    第17章 委托
    第16章 数组
    第15章 枚举类型和位标志
    第14章 字符、字符串和文本处理
    第13章 接口
    第12章 泛型
    第10章 属性
    第11章 事件
    内部类(转载)
    Collections.sort的三种用法
  • 原文地址:https://www.cnblogs.com/Black-Cobra/p/7447636.html
Copyright © 2020-2023  润新知