JavaScript基础篇(八):BOM

125 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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,如共享屏幕、开启摄像头等。

参考文章:juejin.cn/post/689977…