🎱 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
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
主要用来获取 浏览器的属性。
navigator.userAgent
:获取用户代理头的字符串表示(包括浏览器版本信息等的字符串);navigator.cookieEnabled
:返回浏览器是否支持(启用)cookie。
# screen
主要用来获取浏览器窗口外面客户端的显示器信息,例如像素宽度和像素高度。
# history
主要用来操作浏览器 URL 的 历史记录。可以通过参数向前、向后、或者指定 URL 跳转。
history.go()
:接收一个整数或者字符串参数,向最近的一个记录中包含指定的页面跳转;🌰 例子:
history.go('javascript.com')
1参数为正数数字时,正数表示向前跳转指定的页面,负数为向后跳转指定的页面:
🌰 例子:
history.go(2) history.go(-2)
1
2history.forward()
:向前跳转一个页面history.back()
:向后跳转一个页面history.length
:获取历史记录数