爪哇学习笔记——浏览器内置对象(BOM)

JavaScript概念

  • ECMAScript
  • DOM
  • BOM
什么是BOM?
BOM :Browser Object Model(浏览器对象模型),BOM提供了独立于内容的、可以与浏览器窗口进行滑动的对象结构,就是浏览器提供的API。
【爪哇学习笔记——浏览器内置对象(BOM)】其主要对象有:
  1. window对象:BOM的核心,是js访问浏览器的接口,也是ES规定的Global对象。
  2. location对象:提供读取和操作URL信息的属性和方法。即是window对象的属性,也是document对象的属性。
    document.location === window.location; // returns true

  3. navigation对象:提供有关浏览器的系统信息。
  4. history对象:用于保存浏览器历史信息。
  5. screen对象:用于获取浏览器窗口及屏幕的宽高等信息。
window对象
window对象是整个浏览器对象模型的核心,其扮演着既是接口又是全局对象的角色。
window对象提供对以下内容的访问:
  • 全局属性
    // 位置信息 window.screenLeft window.screenTop window.screenX window.screenY // 宽高 const outerHeight = window.outerHeight; const outerWidth = window.outerWidth; const innerHeight = window.innerHeight; const innerWidth = window.innerWidth;

  • 全局方法
    // 位置信息 moveBy(x,y) moveTo(x,y) // 宽高 resizeTo(width, height) resizeBy(width, height) // 弹窗 alert() confirm() prompt() // 定时器 const timeout = setTimeout(callback, delay); // delay in ms const interval = setInterval(callback, delay); // delay in ms clearTimeout(timeout); clearInterval(interval); // 其他 open() onerror()

location对象
  • location.hash 返回URL中#之后的字符串,不包含#
  • location.host
  • location.hostname host包含端口,hostname不包含端口
  • location.href 返回当前页面的完整URL。 我们也可以写入这个属性,从而重定向到新页面。
  • location.pathname 返回hostname之后的任何内容
  • location.port
  • location.protocol
  • location.search 返回URL中?之后的字符串,包含?
  • location.assign(url) 导航到作为参数传入的 url
  • location.replace(url)assign方法类似,但被替换的站点会从会话历史记录中删除
  • location.reload() 这与单击浏览器上的重新加载按钮具有相同的效果
navigator对象
  • navigator.userAgent
  • navigator.language 浏览器首选语言
  • navigator.languages 返回用户已知语言的数组,按偏好排序:["en-GB", "en-US", "en"]
  • navigator.geolocation 返回设备的地理位置信息,对象类型
  • navigator.appName 返回浏览器名称
  • navigator.appVersion 返回浏览器版本
  • navigator.platform 返回浏览器平台名称
history对象
  • history.length 返回一个整数,表示会话历史记录中的元素数量,包括当前加载的页面,只读
  • history.go(integer)
  • history.back(integer)
  • history.forward(integer)
  • history.state 返回在history栈顶的任意值的拷贝。通过这种方式可以查看state值,不必等待popstate事件发生后再查看
  • history.pushState(object, title, url) object为随着状态保存的一个对象,title为新页面的标题,url为新的网址
  • replaceState(object, title, url) 与pushState的唯一区别在于该方法是替换掉history栈顶元素
popstate事件
当活动历史记录条目更改时,将触发popstate事件。调用history.pushState()和history.replaceState()方法不会触发。而用户点击浏览器的前进/后退按钮时会触发,调用history对象的back()、forward()、go()方法时,也会触发。popstate事件的回调函数的参数为event对象,该对象的state属性为随状态保存的那个对象。

    推荐阅读