Bom和Dom
Bom
Bom(browser Object Modle)是浏览器对象模型,是通过js操作浏览器的一个桥梁。
Bom包括以下的对象模型:
- window:包括全局属性和方法
- location:操作URL
- history:操作浏览器的历史
- domcument:当前窗口操作文档的对象
window对象
window对象有两重身份:
全局对象:
在ECMAscript中window是全局对象,Node中代表global对象
在浏览器中代表window对象
浏览器窗口对象:用于操作浏览器窗口
loaction对象
loaction包含的属性:
- href: 当前window对应的超链接URL, 整个URL;
- protocol: 当前的协议;
- host: 主机地址;
- hostname: 主机地址(不带端口);
- port: 端口;
- pathname: 路径;
- search: 查询字符串;
- hash: 哈希值;
- username:URL中的username(很多浏览器已经禁用);
- password:URL中的password(很多浏览器已经禁用);
地址:http://127.0.0.1:5500/index.html#aaa
创建方法:
- location.assign():跳转到新的URL,会保存到history中,可以回退
- location.replace():跳转到新的URL,不会保存到history中,不可以回退
- reload():重新加载页面,传入一个布尔值,true为强制刷新页面,从服务器获取数据,false会向查找缓存。
history对象
history对象允许我们访问浏览器曾经的回话历史记录。
属性:
- length:回话中的记录条数
- state:当前回话页面的状态值
方法:
- back():返回上一页,等价于history.go(-1);
- forward():前进下一页,等价于history.go(1);
- go():加载历史中的某一页;
- pushState():打开一个指定的地址; 传入两个参数,状态对象和url地址
- replaceState():打开一个新的地址,并且使用replace; 传入两个参数,状态对象和url地址
EventTarget
Window继承自EventTarget,所以会继承其中的属性和方法:
- addEventListener:注册某个事件类型以及事件处理函数;
- removeEventListener:移除某个事件类型以及事件处理函数;
- dispatchEvent:派发某个事件类型到EventTarget上;
窗口API
窗口大小
所有现代浏览器都支持的属性:
- innerWidth , innerHeight 返回浏览器页面视口的大小(不包含边框和工具栏)
- outerWidth ,outerHeight 返回浏览器页面视口的大小,包含浏览器边框和工具栏
返回浏览器页面视口的大小(不包含边框和工具栏):
标准模式:document.documentElement.clientHeight