BOM之navigator、history、screen对象

navigator对象

【定义】

  navigator已经成为识别客户端浏览器的事实标准。下表中列出存在于所有浏览器的属性和方法

console.log(window.navigator.userAgent)
//chrome:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36
//firefox:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
//safari:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2
//IE11:Mozilla/5.0 (MSIE 9.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; InfoPath.3; GWX:QUALIFIED; rv:11.0) like Gecko
//IE10:Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; InfoPath.3; GWX:QUALIFIED)
//IE9:Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; InfoPath.3; GWX:QUALIFIED)
//IE8:Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; InfoPath.3; GWX:QUALIFIED)
//IE7:Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; InfoPath.3; GWX:QUALIFIED)

【检测插件】

  检测浏览器插件是一种最常见的检测例程。

  【1】对于非IE浏览器,可以使用plugins数组来达到这个目的该数组中的每一项都包含下列属性

    name:插件的名字 

    description:插件的描述

    filename:插件的文件名

    length:插件所处理的MIME类型数量

    通过循环迭代每个插件并将插件的name与给定的名字进行比较

//检测非IE中的插件
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;
        }
    }
}
//检测flash
console.log(hasPlugin("Flash"));//true    

  【2】对于IE浏览器,检测插件的唯一办法是使用专有的ActiveXObject类型,并尝试创建一个特定插件的实例。IE是使用COM对象来实现插件的,而COM对象使用唯一标识符来标识。因此,想检查特定的插件就必须知道其COM标识符。例如,Flash的标识符是ShockwaveFlash.ShockwaveFlash

//检测IE中的插件
function hasIEPlugin(name){
    try{
        new ActiveXObject(name);
        return true;
    }catch(ex){
        return false;
    }
}
//检测Flash
console.log(hasIEPlugin("ShockwaveFlash.ShockwaveFlash"))

   检测所有浏览器中的Flash插件的兼容写法

//检测非IE中的插件
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;
        }
    }
}
//检测IE中的插件
function hasIEPlugin(name){
    try{
        new ActiveXObject(name);
        return true;
    }catch(ex){
        return false;
    }
}
function hasFlash(){
    var result = hasPlugin("Flash");
    if(!result){
        result = hasIEPlugin("ShockwaveFlash.ShockwaveFlash");
    }
    return result;
}

screen对象

    screen对象基本上只用来表明客户端的能力,其中包括浏览器窗口外部的显示器的信息,如像素高度和宽度等。每个浏览器中的screen对象都包含着各不相同的属性,下表列出了所有属性及支持相应属性的浏览器。

history对象

  history对象保存着用户上网的历史记录,从窗口被打开的那一刻算起。借由用户访问过的页面列表,可以在不知道实际URL的情况下实现后退和前进。

    【1】go()方法

    使用go()方法可以在用户的历史记录中任意跳转。这个方法接收一个参数,表示向后或向前跳转的页面数的一个整数值。负数表示向后跳转(类似于后退按钮),正数表示向前跳转(类似于前进按钮)。

//后退一页
history.go(-1)
//前进一页
history.go(1);
//前进两页
history.go(2);
//无参数时,刷新当前页面
history.go();

    【2】back()和forward()方法模仿浏览器的后退和前进按钮

//后退一页
history.back()
//前进一页
history.forward()

  【3】length属性,保存着历史记录的数量。对于加载到窗口、标签页或框架中的第一个页面而言,history.length等于0,可以通过测试该值来确定用户是否一开始就打开了该页面

if(history.length == 0){
    //
}
时间: 2024-12-22 18:54:45

BOM之navigator、history、screen对象的相关文章

js——navigator,screen,history对象(BOM 3)

navigator对象 识别客户端浏览器的事实标准,每个浏览器的navigator对象都有自己的一套属性,但也有一些共通的属性. 插件检测 对于非IE浏览器,可以使用plugins数组来检查浏览器是否安装了常见的插件.该数组每一项都包含以下属性: name:插件名 description:插件描述 filename:插件的文件名 length:插件所处理的MIME类型数量 //检测插件IE中无效 function hasPlugin(name){ var name=name.toLowerCas

JavaScript---Bom树的操作,内置方法和内置对象(window对象,location对象,navigator对象,history对象,screen对象)

JavaScript---Bom树的操作,内置方法和内置对象(window对象,location对象,navigator对象,history对象,screen对象) 一丶什么是BOM ???????Bom:Browser Object Model,浏览器对象模型.操作浏览器部分的功能的API(事件/函数). 结构图: ???分析:1.window对象是Bom的顶层对象.所有的对象都是从windom延伸出来的,称其为window子对象. ?????? 2.dom是bom的一部分 ?????? 3.

js浏览器内对象 History对象+Navigator对象+Location对象+Screen对象

一.History对象 History 对象包含用户(在浏览器窗口中)访问过的 URL. History 对象是 window 对象的一部分,可通过 window.history 属性对其进行访问. 注释:没有应用于 History 对象的公开标准,不过所有浏览器都支持该对象. IE: Internet Explorer, F: Firefox, O: Opera. 1. History 对象属性 属性 描述 IE F O length 返回浏览器历史列表中的 URL 数量. 4 1 9 2. 

JavaScript之DOM-7 Window常用子对象(navigator对象、location对象、history对象、screen对象)

一.navigator对象 navigator对象的作用 - navigator 对象包含有关浏览器的信息 - 常用于获取客户端浏览器和操作系统信息 常用属性和方法 二.location 对象 location 对象的作用 - location 对象包含有关当前 URL 的信息 - 常用于获取和改变当前浏览器的网址 常用属性和方法 三.history对象 history对象的作用 - history对象包含用户(在浏览器窗口中)访问过的URL的历史记录 常用属性和方法 四.screen对象 sc

Javascript进阶篇——浏览器对象—Location、Navigator、userAgent、screen对象

Location对象location用于获取或设置窗体的URL,并且可以用于解析URL.语法: location.[属性|方法] location对象属性图示: location 对象属性: location 对象方法: 获取当前显示文档的URL,并输出: 1 <script type="text/javascript"> 2 var a = location.href; 3 document.write(a); 4 </script> Navigator对象

history对象 screen对象

history对象 length     历史记录个数 go() 参数:1前进一步 2 前进二步  -1退后一步 -2退后二步 back()     无参数 退后一步 forward()              无参数  前进一步 <script> function qj(){ var x=window.history.go(1); } function ht(){ var x=window.history.forward(); } </script> <body>

BOM之screen对象

前面的话 screen对象在javascript编程中,比较冷门,不太常用.screen对象用来表明客户端的能力,其中包括浏览器窗口外部的显示器的信息,如像素高度和宽度等.本文将详细介绍screen对象 总括 每个浏览器中的screen对象都包含着各不相同的属性,其中chrome包含9个属性,firefox包含10个,IE8-浏览器包含14个,IE9+浏览器包含17个.下面将这17个属性概述如下 属性 说明 height 屏幕的像素高度 width 屏幕的像素宽度 availHeight 屏幕的

高程8.4 screen对象 8.5history对象 8.6小结

属性 说明 IE FF Safari/Chrome Opera availHeight 屏幕的像素高度减系统部件高度之后的值(只读) √ √ √ √ availLeft 未被系统部件占用的最左侧的像素值(只读)   √ √   availTop 未被系统部件占用的最上方 的像素值(只读)   √ √   availWidth 屏幕的像素宽度减系统部件宽度之后的值(只读) √ √ √ √ bufferDepth 读,写用于呈现屏外位图的位数 √       colorDepth 用于表现颜色的位数

javaScript知识体系(中)- DOM、BOM、其它内置对象

1. DOM基本概念 1.1 DOM DOM Document Object Model 文档对象模型     就是把HTML文档模型化,当作对象来处理     DOM提供的一系列属性和方法可以视作一个工具箱,极大地方便了我们对文档的处理. 1.2 内容概念 文档(Document):就是指HTML或者XML文件     节点(Node):HTML文档中的所有内容都可以称之为节点,常见的节点有         元素节点 属性节点 文本节点 注释节点     元素(Element)