简介
BOM(浏览器对象模型)提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关。
1.window对象
BOM的核心对象是window,它表示浏览器的一个实例。在浏览器中,window对象具有双层角色,它既是通过JavaScript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象。
2.location对象
location对象是最有用的BOM对象之一,它提供了与当前窗口中加载的文档相关的消息,还提供了一些导航功能。事实上,location对象既是window对象的属性,也是document对象的属性。location对象的用处不只表现在它保存着当前文档的信息,还表现在它将URL解析成独立的片段,让开发人员可以通过不同的属性访问这些片段。
比如url:https://baike.baidu.com/item/%E6%88%90%E9%83%BD/128473?fr=aladdin
属性名 | 例子 | 说明 |
location.herf | "https://baike.baidu.com/item/%E6%88%90%E9%83%BD/128473?fr=aladdin" | 返回当前加载页面的完整URL |
location.protocol | "https:" | 返回页面通用的协议。通常是http或者https |
location.host | "baike.baidu.com" | 返回服务器名称(带端口,如果有的话) |
location.hostname | "baike.baidu.com" | 返回服务器名称(不带端口) |
location.port | "" | 返回URL指定的端口号。如果URL不包含端口号,则返回空字符串。 |
location.pathname | "/item/%E6%88%90%E9%83%BD/128473" | 返回URL中的目录和(或)文件名 |
location.search | "?fr=aladdin" | 返回URL中的字符串。(?及其以后的内容) |
location.hash | "" | 返回URL中的hash(#后跟零或多个字符串)。如果URL中不包含散列,则返回空字符串。 |
2.navigator对象
navigator对象,现在已经成为识别客户端浏览器的事实标准。
属性和方法 | 说明 | 说明 |
navigator.appName | "Netscape" | 在基于 Netscape 的浏览器中,这个属性的值是 "Netscape"。在 IE 中,这个属性的值是 "Microsoft Internet Explorer"。其他浏览器可以正确地表示自己或者伪装成其他的浏览器以达到兼容性。 |
navigator.appVersion | "5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36" | appVersion 属性可返回浏览器的平台和版本信息。该字符串的第一部分是版本号。把该字符串传递给 parseInt() 只能获取主版本号。 |
navigator.cookieEnabled | 布尔值 | 表示cookie是否启用 |
navigator.language | "zh-CN" | 浏览器的主语言 |
navigator.onLine | 布尔值 | 浏览器是否联网 |
navigator.plugins | PluginArray {0: Plugin, 1: Plugin, 2: Plugin, Chrome PDF Plugin: Plugin, Chrome PDF Viewer: Plugin, Native Client: Plugin, length: 3} | 浏览器中安装的插件信息的数组 |
navigator.userAgent | "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36" | userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。 一般来讲,它是在 navigator.appCodeName 的值之后加上斜线和 navigator.appVersion 的值构成的。 |
navigator.platform | "Win32" | 浏览器所在的系统平台 |
3.history对象
history对象会保存着用户上网的历史记录。
1.go方法传入一个字符串参数
history.go(1) //前进一页
history.go(-2) //后退两页
2.back()
history.back() //后退一页
3.forward()
history.forward() //前进一页
4.length属性
history对象有一个length属性,保存着历史记录的数量。这个数量保存着所有的历史记录,即所有的向前和前后的记录。对于已经加载到窗口、标签页或框架中的第一个页面而言,history.length等于0.