一、什么是BOM
BOM是浏览器对象,可以获取和浏览器相关的,比如url、窗口、代理等相关对象的信息可以通过BOM获取
二、BOM有哪些常见的对象
-
window对象(屏幕相关)
①可以给window对象赋属性
从下图中我们可以看出,给window对象赋a属性且赋值就打印window对象就可以看到
②可以获取当前浏览器窗口的宽高
window.innerHeight
window.innerWidth
③window.open(url)
传入一个url可以打开一个新的标签页,且响应url
-
location对象(url相关)
以url: http://localhost:8088/#/orderManage/inbound为例
①属性hash:声明了锚,对应的是#后面的值
location.hash
#/orderManage/inbound
②属性host:host对应的主机名+端口
location.host
localhost:8088
③属性hostname:对应主机名
location.hostname
localhost
④属性href:对应整个url
location.href
http://localhost:8088/#/orderManage/inbound
⑤属性origin:
location.origin
http://localhost:8088
⑥属性pathname:当前 URL的路径部分
location.pathname
换个url http://www.123.cn:80/news/index.asp?id=123&name=location#top
/news/index.asp
⑦属性port:对应端口
location.port
8088
⑧属性protocol:协议
location.protocol
http
⑨属性search: 声明当前查询的部分,?及其后面的部分
location.search
换个url http://www.123.cn:80/news/index.asp?id=123&name=location#top
?id=123&name=location#top
API
①方法replace(url):可以装载一个新文档而无须为它创建一个新的历史记录。也就是说,在history对象的地址列表中移除这个URL。这样在浏览器中就不能通过单击“返回”按钮返回当前的文档
②方法reload(true):重新加载,不传参数true资源加载有可能是从本地缓存,也有可能是服务器,但是添加参数true表示必须从服务器上加载
-
history对象(url历史跳转相关)
①length属性:返回浏览器历史列表中的 URL 数量
API
①方法back(): 加载history列表中的前一个url
②方法forward(): 加载history列表中的下一个url
③方法go(number|url): 加载history列表中某个具体页面
-
navigator对象(浏览器代理相关)
可以用于判断是否包含某个插件
if (navigator.mediaDevices === undefined) {
navigator.mediaDevices = {}
}
-
screen对象(屏幕相关)
①availHeight:屏幕可利用高度
②availWidth:屏幕可利用宽度