🎱 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:80port: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:获取历史记录数
