BOM 常用对象类型笔记

浏览器对象模型 BOM(Browser Object Model)允许 JavaScript 直接与浏览器进行交互,在 JavaScript 中定义了 6 种重要的对象:

  • Window 对象
  • Document 对象
  • Location 对象
  • Navigation 对象
  • Screen 对象
  • History 对象

其中,其他所有对象都是 Window 对象的一部分。

Window 对象

Window 对象是 BOM 的核心,表示当前的浏览器窗口。主要提供调整窗口的尺寸和位置、打开新窗口、系统提示框、状态栏控制、定时操作等功能。具体请参考表格。

使用 window 对象的属性和方法不需要特别的指明。如:

1
2
alert("Alert.");
window.alert("Alert.");

两种调用方式等价,第二种是第一种调用的完整写法。

Window 对象的属性表

属性名 作用
name 指定窗口的名称
parent 当前窗口(框架)的父窗口,使用它返回对象的方法和属性
opener 返回产生当前窗口的窗口对象,使用它返回对象的方法和属性
top 代表主窗口,是最顶层的窗口,也是所有其他窗口的父窗口。可通过该对象访问当前窗口的方法和属性
self 返回当前窗口的一个对象,可通过该对象访问当前窗口的方法和属性
defaultstatus 返回或设置将在浏览器状态栏中显示的默认内容
status 返回或设置将在浏览器状态栏中显示的指定内容

Window 对象的方法表

方法名 作用
alert() 显示一个警示对话框,包含一条信息和一个确定按钮
confirm() 显示一个确认对话框
prompt() 显示一个提示对话框,提示用户输入数据
open() 打开一个已存在的窗口,或者创建一个新窗口,并在该窗口中加载一个文档
close() 关闭一个打开的窗口
navigate() 在当前窗口中显示指定网页
setTimeout() 设置一个定时器,在经过指定的时间间隔后调用一个函数
clearTimeout() 给指定的计时器复位
focus() 使一个Window对象得到当前焦点
blur() 使一个Window对象失去当前焦点

Window 对象的事件表

事件 说明
onload HTML文件载入浏览器时发生
onunload HTML文件从浏览器删除时发生
onfocus 窗口获得焦点时发生
onblur 窗口失去焦点时发生
onhelp 用户按下F1键时发生
onresize 用户调整窗口大小时发生
onscroll 用户滚动窗口时发生
onerror 载入HTML文件出错时发生

Document 对象

当浏览器载入 HTML 文档,它就会成为 Document 对象,载入之后的 Document 对象是 HTML 文档的根节点。

Document 对象的存在让我们可以使用 JavaScript 访问并操作 HTML 页面中的所有元素。

属性 / 方法 描述
document.activeElement 返回当前获取焦点元素
document.addEventListener() 向文档添加句柄
document.adoptNode(node) 从另外一个文档返回 adapded 节点到当前文档。
document.anchors 返回对文档中所有 Anchor 对象的引用。
document.baseURI 返回文档的绝对基础 URI
document.body 返回文档的body元素
document.close() 关闭用 document.open() 方法打开的输出流,并显示选定的数据。
document.cookie 设置或返回与当前文档有关的所有 cookie。
document.createAttribute() 创建一个属性节点
document.createComment() createComment() 方法可创建注释节点。
document.createDocumentFragment() 创建空的 DocumentFragment 对象,并返回此对象。
document.createElement() 创建元素节点。
document.createTextNode() 创建文本节点。
document.doctype 返回与文档相关的文档类型声明 (DTD)。
document.documentElement 返回文档的根节点
document.documentMode 返回用于通过浏览器渲染文档的模式
document.documentURI 设置或返回文档的位置
document.domain 返回当前文档的域名。
document.domConfig 已废弃。返回 normalizeDocument() 被调用时所使用的配置。
document.embeds 返回文档中所有嵌入的内容(embed)集合
document.forms 返回对文档中所有 Form 对象引用。
document.getElementsByClassName() 返回文档中所有指定类名的元素集合,作为 NodeList 对象。
document.getElementById() 返回对拥有指定 id 的第一个对象的引用。
document.getElementsByName() 返回带有指定名称的对象集合。
document.getElementsByTagName() 返回带有指定标签名的对象集合。
document.images 返回对文档中所有 Image 对象引用。
document.implementation 返回处理该文档的 DOMImplementation 对象。
document.importNode() 把一个节点从另一个文档复制到该文档以便应用。
document.inputEncoding 返回用于文档的编码方式(在解析时)。
document.lastModified 返回文档被最后修改的日期和时间。
document.links 返回对文档中所有 Area 和 Link 对象引用。
document.normalize() 删除空文本节点,并连接相邻节点
document.normalizeDocument() 删除空文本节点,并连接相邻节点的
document.open() 打开一个流,以收集来自任何 document.write() 或 document.writeln() 方法的输出。
document.querySelector() 返回文档中匹配指定的CSS选择器的第一元素
document.querySelectorAll() document.querySelectorAll() 是 HTML5中引入的新方法,返回文档中匹配的CSS选择器的所有元素节点列表
document.readyState 返回文档状态 (载入中……)
document.referrer 返回载入当前文档的文档的 URL。
document.removeEventListener() 移除文档中的事件句柄(由 addEventListener() 方法添加)
document.renameNode() 重命名元素或者属性节点。
document.scripts 返回页面中所有脚本的集合。
document.strictErrorChecking 设置或返回是否强制进行错误检查。
document.title 返回当前文档的标题。
document.URL 返回文档完整的URL
document.write() 向文档写 HTML 表达式 或 JavaScript 代码。
document.writeln() 等同于 write() 方法,不同的是在每个表达式之后写一个换行符。

Navigator 对象包含着有关浏览器的信息。

  • Navigator 对象属性
属性 说明
appCodeName 返回浏览器的代码名
appName 返回浏览器的名称
appVersion 返回浏览器的平台和版本信息
cookieEnabled 返回指明浏览器中是否启用 cookie 的布尔值
platform 返回运行浏览器的操作系统平台
userAgent 返回由客户机发送服务器的 user-agent 头部的值
  • Navigator 对象方法
方法 描述
javaEnabled() 指定是否在浏览器中启用Java
taintEnabled() 规定浏览器是否启用数据污点(data tainting)

Location 对象

location 对象存储着当前文档的 URL 信息。可以通过 window.location 访问。

属性 描述
hash 设置或返回从井号 (#) 开始的 URL(锚)。
host 设置或返回主机名和当前 URL 的端口号。
hostname 设置或返回当前 URL 的主机名。
href 设置或返回完整的 URL。
pathname 设置或返回当前 URL 的路径部分。
port 设置或返回当前 URL 的端口号。
protocol 设置或返回当前 URL 的协议。
search 设置或返回从问号 (?) 开始的 URL(查询部分)。

location 对象方法

属性 描述
assign() 加载新的文档。
reload() 重新加载当前文档。
replace() 用新的文档替换当前文档。

Screen对象

screen 对象中存放着有关显示浏览器屏幕的信息,我们可以利用这些信息使用 JavaScript 优化页面的显示输出,比如根据显示器尺寸选择输出大小尺寸的图像等。

screen 对象的属性如下表所示

属性 描述
availHeight 返回显示屏幕的高度 (除 Windows 任务栏之外)。
availWidth 返回显示屏幕的宽度 (除 Windows 任务栏之外)。
bufferDepth 设置或返回调色板的比特深度。
colorDepth 返回目标设备或缓冲器上的调色板的比特深度。
deviceXDPI 返回显示屏幕的每英寸水平点数。
deviceYDPI 返回显示屏幕的每英寸垂直点数。
fontSmoothingEnabled 返回用户是否在显示控制面板中启用了字体平滑。
height 返回显示屏幕的高度。
logicalXDPI 返回显示屏幕每英寸的水平方向的常规点数。
logicalYDPI 返回显示屏幕每英寸的垂直方向的常规点数。
pixelDepth 返回显示屏幕的颜色分辨率(比特每像素)。
updateInterval 设置或返回屏幕的刷新率。
width 返回显示器屏幕的宽度。

History 对象

History 对象记录着用户在浏览器中访问过的 URL,开发人员无法直接得到用户浏览器的 URL,但是可以通过 History 对象实现后退和前进的操作。

History 对象仅有一个属性 history.length,它保存着历史记录的URL数量,初始值为1。

History 对象提供了一系列允许在浏览历史之间移动的方法,具体的方法及其说明如下。

方法 说明
go(n) 可以在用户的历史记录中任意跳转,n代表向后或者向前跳转的页面数的整数值,负数表示向后跳转,整数表示向前跳转,参数为0的时候可以刷新当前页面,没有参数相当于参数为0的情况。
forward() 等同于浏览器的前进按钮,相当于history.go(1)
back() 等同于浏览器的后退按钮,相当于history.go(-1)
pushState(state, title, url) HTML5中新增的方法,向History中添加一个状态,参数由状态对象、标题(可忽略)、可选的URL地址组成。
replaceState(state, title, url) HTML5中新增的方法,修改当前的历史记录条目而非创建新条目,其他与pushState()相同。

在使用前三个方法的时候,若移动的位置超过 History 所记录的历史的边界则不会报错,而是会静默的失败。