BOM(Browser Object Model)

什么是BOM

  • BOM是browser object model的缩写,简称浏览器对象模型
  • BOM提供了独立于内容而与浏览器窗口进行交互的对象
  • 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是window
  • BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性
  • BOM缺乏标准,JavaScript语法的标准化组织是ECMA,DOM的标准化组织是W3C
  • BOM最初是Netscape浏览器标准的一部分
BOM(Browser Object Model)_第1张图片
TIM截图20170424125747.png

可以看到图中并没有叫BOM的 , 搜索中出现的第一个链接是Window MDN .
因为BOM并没有 specification

  • BOM属于约定俗成 , 比如 Firefox 怎么实现 , chrome就照抄一下 , 包括一些其他的浏览器 . 所以会有一些独立的API,并不互相支持

大部分的通用API

  • window.history
    这个API控制前进返回,按钮


    TIM截图20170424125747.png

    后退就是 , window.history.back()
    前进就是 , window.history.forward()
    window.history.go(-1) //等价于back()
    window.history.go(1) //等价于forward()

.

window.innerHeight

获取浏览窗口的高度

.

window.location

用于操作地址栏
window.location.href = 'https://www.baidu.com' //操作跳转到百度
也可以使用这种写法window.location

  • window.location.protocol 获取当前协议
    "https:"
  • window.location.hostname 获取域名
    "www.jianshu.com"
  • window.location.port 获取端口号
    "" //没有就显示空字符串
  • window.location.host 获取域名和端口号
    "www.jianshu.com" 没有端口号就不显示
  • window.location.pathname 获取路径
    "/writer" 它不包含查询字符串
  • window.location.search 获取查询字符串
    "" 没有就显示空字符串
  • window.location.hash 获取#后面的内容 ,fragment
    "" 没有显示空字符串 ,
  • window.location.origin 获取网站的起源, 协议+域名+端口号
    "http://www.jianshu.com"

window.name

获取窗口的名字, 可以修改

window.navigator

获取 浏览器 的所有信息

window.outerHeight

获取整个浏览器的高度

window.pageXOffset

等同于window.scrollX

window.pageYOffset

等同于window.scrollY

window.parent

返回当前窗口的父窗口对象.
如果一个窗口没有父窗口,则它的 parent 属性为自身的引用.
如果当前窗口是一个