持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第7天,点击查看活动详情
BOM是把整个浏览器当成一个对象来操作的,它包括了window、浏览器前进、后退以及操作用户设备的一些功能
window
window 对象表示一个包含DOM文档的窗口,其 document 属性指向窗口中载入的 DOM文档。
详见:developer.mozilla.org/zh-CN/docs/…
跨标签页通信
| 方法方式 | 遵守同源策略 | web worker可用 |
| webScoket | ✅ | |
| postMessage | ||
| 定时器+本地存储(如indexedDB、localStorage等) | ✅ | |
| BroadcastChannel(两个页面new BroadcastChannel(name相同)) | ✅ | ✅ |
| SharedWorker | ✅ | ✅ |
| iframe等 |
location对象
location本身也是一个对象,保存了浏览器中路由地址的一些信息,有自身的属性和方法。
属性
-
href:整个url
-
protocol:协议
-
host:域名,可能会带port
-
hostname:域名
-
port:端口
-
pathname:路径
-
search:包含URL参数的一个
DOMString,开头有一个“?”。 -
hash:包含块标识符的
DOMString,开头有一个“#” -
password
包含URL域名前的密码的一个
DOMString -
orign
包含页面来源的域名的标准形式
DOMString
方法
-
reload
重新加载来自当前 URL的资源,传入参数true,则从服务端重新请求资源,要是false可能从浏览器缓存中拿
-
replace
用给定的URL替换掉当前的资源。与
assign()方法不同的是用replace()替换的新页面不会被保存在会话的历史History中,这意味着用户将不能用后退按钮转到该页面 -
assign
加载给定URL的内容资源到这个Location对象所关联的对象上
history对象
history对象提供了对浏览器的历史会话的记录,并提供了一些方法和属性,允许我们在用户浏览历史中向前和向后跳转。
方法
- forward():向前跳转(如同用户点击了前进按钮)
- back():向后跳转
- go():跳转到特定页面,正数向前、负数向后
以上三个方法会触发**
popstate**** 事件,pushState和replaceState方法不会触发,但是popstate事件的状态属性state会包含一个当前历史记录状态对象的拷贝。**
- pushState方法
- replaceState方法
navigator对象
navigator对象包含了用户设备的一些信息以及操作用户系统的API,如共享屏幕、开启摄像头等。