zoukankan      html  css  js  c++  java
  • 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页

  • 相关阅读:
    深入理解JVM(二)--对象的创建
    深入理解JVM(一) -- 自动内存管理机制
    代理模式(Proxy)
    心知天气数据API 产品的高并发实践
    Jenkins 构建踩坑经历
    log4net SmtpAppender 踩坑总结
    从 ASP.NET Core 2.1 迁移到 2.2 踩坑总结
    在Windows上安装 Consul
    redis-desktop-manager 0.9.3 安装(最后一个免费版本)
    在Windows上安装Redis
  • 原文地址:https://www.cnblogs.com/Black-Cobra/p/7447636.html
Copyright © 2011-2022 走看看