目录

🎱 JavaScript BOM 相关问题

  • 对 BOM 的理解?
  • 常见的 BOM 对象?

# BOM 的概念

BOM (Browser Object Model) 是 浏览器对象模型,提供独立于内容与浏览器窗口进行交互的对象。

BOM 的作用是,与浏览器完成交互,例如完成页面的后退、前进、刷新;浏览器的窗口的变化、滚动条的滚动;获取用户的客户端信息、浏览器信息、窗口分辨率等。

与 DOM / 文档对象模型 相比:

BOM DOM
浏览器对象模型 文档对象模型
顶级对象是 window 顶级对象是 document
主要是浏览器交互的对象 主要是操作页面元素
是浏览器厂商在各自浏览器定义 是 W3C 的标准规范

# 常用的 BOM 对象 属性 / 方法

# window

在浏览器中, window 既是 浏览器窗口的一个接口,又是全局对象(全局作用域中的变量、函数)。

常用的窗口控制方法:

  • moveBy(x,y) :从当前位置水平移动窗体 x 个像素,垂直移动窗体 y 个像素。右正负左;下正负上。
  • moveTo(x,y) :移动窗体左上角到相对于屏幕左上角的 (x,y) 点;
  • resizeBy(w,h) :相对窗体当前的大小,宽度调整 w 个像素,高度调整 h 个像素。如果参数为负值,将缩小窗体,反之扩大窗体。
  • scrollTo(x,y) :如果有滚动条,将横向滚动条移动到相对于窗体宽度为 x 个像素的位置,将纵向滚动条移动到相对于窗体高度为 y 个像素的位置;
  • scrollBy(x,y) : 如果有滚动条,将横向滚动条向左移动 x 个像素,将纵向滚动条向下移动 y 个像素;

导航或者打开关闭窗口:

  • window.open() :导航到特定的 URL 或者打开新的浏览器窗口;
  • winodw.close :关闭通过 window.open 打开的窗口。

# location

获取 URL 中的内容,实例 URL:

http://foouser:barpassword@www.wrox.com:80/WileyCDA/?q=javascript#contents
1
  • protocol :使用的协议部分。( http:

  • hostname :URL 中的域名,不包含端口号。( www.wrox.com

  • host :URL 中服务器名称和端口号。( www.wrox.com:80

  • port :URL 中的端口号。( 89

  • pathname :路径。( /WileyCDA/ )

  • search :查询字符串,通常为 ? 符号后的内容( ?q=javascript

  • hash :URL 中 # 符号后的内容。( #contents

  • href :完整的 URL。

只要修改 location 中的一个属性(除了 hash ) 就会导致页面重新加载 新的 URL。

  • location.reload() :重新刷新当前页面。根据最有效的方式刷新页面,如果页面自上一次请求以来没有改变过,页面就会从浏览器缓存中重新加载。强制从服务器中加载,添加参数 true

主要用来获取 浏览器的属性

  • navigator.userAgent :获取用户代理头的字符串表示(包括浏览器版本信息等的字符串);
  • navigator.cookieEnabled :返回浏览器是否支持(启用)cookie。

# screen

主要用来获取浏览器窗口外面客户端的显示器信息,例如像素宽度和像素高度。

# history

主要用来操作浏览器 URL 的 历史记录。可以通过参数向前、向后、或者指定 URL 跳转。

  • history.go() :接收一个整数或者字符串参数,向最近的一个记录中包含指定的页面跳转;

    🌰 例子:

    history.go('javascript.com')
    
    1

    参数为正数数字时,正数表示向前跳转指定的页面,负数为向后跳转指定的页面:

    🌰 例子:

    history.go(2)
    history.go(-2)
    
    1
    2
  • history.forward() :向前跳转一个页面

  • history.back() :向后跳转一个页面

  • history.length :获取历史记录数

📢 上次更新: 2022/09/02, 10:18:16