BOM
ECMAScript各个版本都能兼容,只不过低版本不兼容ES6以上
BOM和DOM都是树形结构
BOM的根是window,DOM的根是document
BOM中包含:document(文档)、location(本地信息)、history(历史)、screen(屏幕)、navigator(浏览器信息)
window对象(根)
open(); close(); 用于弹窗,现在基本被屏蔽了。
window.innerWidth,window.innerHeight :浏览器内部的宽高(兼容所有浏览器)
window.outerWidth,window.outerHeight :整个浏览器窗口宽高(兼容所有浏览器)
window.screenLeft,window.screenRight :浏览器距离屏幕左上角的距离,不能设置,只能获取。等同于(screenX,screenY)
screenLeft、screenTop、screenX、screenY :完全相同,都是浏览器距离屏幕左上角的距离。只能获取,不能设置。
onpopstate事件:当点击浏览器前进或后退时触发事件
location对象
reload() :重新刷新页面
location.href :href获取当前页面的地址,也可以设置当前页面的地址,跳转页面,会产生历史记录
location.assign() :不能获取,可以跳转页面,会产生历史记录
location.replace() :跳转页面,不能产生历史记录
location.hash :获取url中#后面的内容,如果没有返回空字符串
location.search :获取url中?和后面的内容
location.hostname : 返回web主机的域名
location.port : 返回web主机的端口
location.pathname :当前地址域名和端口号后面的路径
location.protocol : 返回web协议(http:// 或者 https://)
history对象
history.go() :0 刷新页面 1 向前一个 -1 向后一个 2 向前两个 (以此类推)
back() :向后一页
forward() : 向前一页
history.length : 返回历史列表中的网址数
history.state : 获取history状态
history.pushState(state,title,url); //添加历史记录 ,可以做到不刷新浏览器改变url,但是网站不会检测这个url
screen 对象
screen.availWidth,screen.availHeight :去除了任务栏的宽高
screen.width,screen.height :全屏幕宽高
navigator.userAgent :返回由客户机发送服务器的user-agent头部的值
navigator.appName : 返回浏览器的名称(历史遗留问题)
navigaotr.appVersion : 返回浏览器的平台和版本信息
navigator.platform :返回运行浏览器的操作系统