这是我参与更文挑战的第7天,活动详情查看: 更文挑战
介绍
BOM(即Browser Object Model),翻译成中文就是浏览器对象模型
,其是使用JavaScript开发Web应用的核心所在。BOM提供了一些与网页无关的浏览器功能对象。BOM并没有一个固定的规范,浏览器开发商都按照自己的意愿来为它添砖加瓦。最终,浏览器实现之间共通的部分成为了事实标准,为Web开发提供了浏览器间交互操作的基础。
window
window对象是BOM的核心,是JS最顶层的对象,其他的BOM对象都是window对象的属性,所有定义在全局作用域中的变量、函数都是window对象的属性和方法,在调用的时候可以省略window。window对象不仅是通过JavaScript访问浏览器的接口,同时也是ECMAScript规定的Global对象。
window对象常用的方法:
window.onload()
窗口加载事件window.onresize()
跳转窗口大小事件
location
location 是最有用的BOM对象之一,提供了当前窗口中加载文档的信息,以及通常的导航功能。 这个对象独特的地方在于,它既是 window 的属性,也是 document 的属性。也就是说, window.location 和 document.location 指向同一个对象。 location 对象不仅保存着当前加 载文档的信息,也保存着把URL解析为离散片段后能够通过属性访问的信息。
location的属性和方法:
location.href
获取或者设置 整个URLlocation.host
返回主机名(域名)location.port
返回端口号 如果未写返回 空字符串location.pathname
返回路径location.search
返回参数location.hash
返回片段 #后面内容 常见于链接、锚点location.assign()
跟 href 一样,可以跳转页面(也称为重定向页面)location.replace()
替换当前页面,因为不记录历史,所有不能后退location.reload()
重新加载页面,相当于刷新按钮或者 f5 如果参数为 true,强制刷新 Ctrl + f5
navigator
navigator 是由Netscape Navigator 2最早引入浏览器的,现在已经成为客户端标识浏览器的标准。 只要浏览器启用JavaScript, navigator 对象就一定存在。但是与其他BOM对象一样,每个浏览器都会根据自己的意愿为其添砖加瓦。
navigator的属性和方法:
activeVrDisplays
返回数组,包含 ispresenting 属性为 true的VRDisplay实例appCodeName
在非Mozilla浏览器中也会返回 "Mozilla"appName
浏览器全名appVersion
浏览器版本,通常与实际的浏览器版本不一致battery
返回暴露Battery Status API的BatteryManager 对象buildId
浏览器的构建编号connection
返回暴露Network Information API的NetworkInformation 对象cookieEnabled
返回布尔值,表示是否启用了cookiecredentials
返回暴露Credentials Management API的CredentialsContainer 对象deviceMemory
返回单位为GB的设备内存容量doNotTrack
返回用户的“不跟踪”(do-not-track)设置geolocation
返回暴露Geolocation API的Geolocation 对象getVRDisplays()
返回数组,包含可用的每个VRDisplay 实例getUserMedia()
返回与可用媒体设备硬件关联的流hardwareConcurrency
返回设备的处理器核心数量javaEnabled
返回布尔值,表示浏览器是否启用了Javalanguage
返回浏览器的主语言languages
返回浏览器偏好的语言数组locks
返回暴露Web Locks API的LockManager 对象mediaCapabilities
返回暴露Media Capabilities API的MediaCapabilities 对象mediaDevices
返回可用的媒体设备maxTouchPoints
返回设备触摸屏支持的最大触点数mimeTypes
返回浏览器中注册的MIME类型数组onLine
返回布尔值,表示浏览器是否联网oscpu
返回浏览器运行设备的操作系统和(或)CPUpermissions
返回暴露Permissions API的Permissions对象platform
返回浏览器运行的系统平台plugins
返回浏览器安装的插件数组。在IE中,这个数组包含页面中所有 元素product
返回产品名称(通常是 "Gecko" )productSub
返回产品的额外信息(通常是Gecko的版本)registerProtocolHandler()
将一个网站注册为特定协议的处理程序requestMediaKeySystemAccess()
返回一个期约,解决为MediaKeySystemAccess 对象sendBeacon()
异步传输一些小数据serviceWorker
返回用来与 ServiceWorker 实例交互的 ServiceWorkerContainershare()
返回当前平台的原生共享机制storage
返回暴露Storage API的StorageManager 对象userAgent
返回浏览器的用户代理字符串vendor
返回浏览器的厂商名称vendorSub
返回浏览器厂商的更多信息vibrate()
触发设备振动webdriver
返回浏览器当前是否被自动化程序控制
screen
screen也是window的一个属性,是为数不多的几个在编程中很少用的JavaScript对象。这个对 象中保存的纯粹是客户端能力信息,也就是浏览器窗口外面的客户端显示器的信息,比如像素宽度和像素 高度。每个浏览器都会在 screen 对象上暴露不同的属性。
screen有如下属性:
availHeight
屏幕像素高度减去系统组件高度(只读)availLeft
没有被系统组件占用的屏幕的最左侧像素(只读)availTop
没有被系统组件占用的屏幕的最顶端像素(只读)availWidth
屏幕像素宽度减去系统组件宽度(只读)colorDepth
表示屏幕颜色的位数;多数系统是32(只读)height
屏幕像素高度left
当前屏幕左边的像素距离pixelDepth
屏幕的位深(只读)top
当前屏幕顶端的像素距离width
屏幕像素宽度orientation
返回Screen Orientation API中屏幕的朝向
history
history 对象表示当前窗口首次使用以来用户的导航历史记录。因为 history 是 window 的属 性,所以每个 window 都有自己的 history 对象。出于安全考虑,这个对象不会暴露用户访问过的 URL,但可以通过它在不知道实际URL的情况下前进和后退。
history的方法:
back()
可以后退功能forward()
前进功能go(参数)
前进后退功能 参数如果是1,前进一个页面;参数如果是-1,后退一个页面