BOM
一、什么是BOM
浏览器对象模型,独立于内容而与浏览器窗口进行交互的对象,其核心对象是window
BOM是浏览器厂商自己定义的。兼容性较差。
BOM包含DOM,DOM的*对象是document
window是js操作浏览器的一个接口
window是一个全局对象,定义在全局中的变量和函数都会变成windwo对象的属性和方法。
console.dir(window)查看window的对象
二、window的组成
1.document
2.location
3.navigation
4.screen
5.history
…
三、windwo的事件
1.窗口加载事件
window.onload = function(){
//表示在文档内容全部加载完成后才会触发的事件,文档内容包括图像,脚本文件,CSS文件等。
}
//或者
window.addEventListener('load',function(){
//同上
})
document.addEventListener('DOMContentLoaded',function(){
//仅当DOM加载完成时触发,不包括样式不,图片和false,ie9以上支持,执行速度比上面两个块
})
window.onload 加载事件只能写一个,写多个以最后的事件为准。
addEventListener则没有限制,可以写多个,都会生效。
2.浏览器窗口变化事件
window.onresize =function(){
//浏览器窗口发生变化就会触发
}
//或者
window.addEventListener('resize',function(){
})
获取当前浏览器的宽度/高度,window.innerWidth/innnerHright
四、location对象
location主要来处理url
url:http://www.baidu.com:80/index?name=fei&age=18#id
http:// 是通信协议
www.baidu.com 是主机(域名)
:80 是端口
index 是路径
name=fei&age=18 是参数
#id 是锚点
1.location.href
获取或设置整个URL,设置之后会自动跳转到指定页面。
2.locaion.host
返回主机/域名
3.location.port
返回端口
4.location.pathname
返回路径
5.location.search
返回参数
6.location.hash
返回片段,#后面的内容
7.location对象的方法
1.location.assign()
location.assign("www.baidu.com")
重定向页面,和location.href一样,可以跳转页面
参数就是地址,它记录浏览历史,可以后退页面。
2.location.replace()
location.replace("www.baidu.com")
替换当前页面,因为不记录历史,所以不能后退页面
参数就是地址。
3.location.reload()
location.reload()
重新加载页面,相当于刷新按钮,或者F5,如果参数为true,表示强制刷新F5,强制刷新就不会读取缓存,
不强制刷新就是读取缓存的页面。
五、navigator对象
包含浏览器的相关信息,该属性可以返回由客户机发生给服务器的user-agent头部的值。
1.userAgent
用户使用的浏览器版本,手机还是电脑,系统 版本等信息。
userAgent.match(/(phone|pad|pod|ios))
//匹配什么版本,返回值为boolean
六、history对象
浏览器的后退和前进按钮
1.history.back()
可以后退
2.history.forward()
前进功能
3.history.go()
前进后退功能,参数是1表示前进1个页面,参数为-1表示后退1个页面。