一、什么是BOM
-
浏览器对象模型(Browser Object Model)。主要用在客户端浏览器的管理。
-
一直没有被标准化,不过各个主流浏览器都支持BOM,浏览器提供商会按照各自的想法随意去扩展它
-
它使 javascript 有能力与浏览器进行“对话”。
二、window对象
- BOM 的核心对象是
window,它表示浏览器的一个实例。是客户端浏览器对象模型的基类。
- 在浏览器中,
window对象有双重角色,它既是通过 JavaScript 访问浏览器窗口的一个接口,又是 ECMAScript 规定的Global对象。
- 这意味着在网页中定义的任何一个对象、变量和函数,都以
window作为其Global对象,因此有权访问isNaN()、isFinite()、parseInt()、parseFloat()等方法
2.1 全局作用域
- 由于
window对象同时扮演着 ECMAScript 中Global对象的角色,因此所有在全局作用域中声明的变量、函数都会变成window对象的属性和方法
2.2 访问客户端对象
使用 window对象可以访问客户端其他对象,这种关系构成浏览器对象模型。
- navigator:包含客户端有关浏览器的信息
- screen:包含客户端屏幕的信息(使用较少)
- history:包含浏览器窗口访问过的URL历史信息
- location:包含当前网页文档的URL信息
-
document:包含整个HTML文档,可以用来访问文档内容及其所有页面元素
使用系统对话框
- 浏览器通过
alert()、confirm()和prompt()方法可以调用系统对话框向用户显示消息。
- 系统对话框与在浏览器中显示的网页没有关系,也不包含 HTML。它们的外观由操作系统及(或)浏览器设置决定,而不是由 CSS 决定。
- 通过这几个方法打开的对话框都是同步和模态的。也就是说,显示这些对话框的时候代码会停止执行,而关掉这些对话框后代码又会恢复执行。
2.3.1 alert()
- 它向用户显示一个系统对话框,其中包含指定的文本和一个 OK(“确定”)按钮。
- 通常使用
alert()生成的“警告”对话框向用户显示一些他们无法控制的消息,例如错误消息。
- 用户只能在看完消息后关闭对话框。
2.3.2 confirm()
- 这种“确认”对话框很像是一个“警告”对话框。但二者的主要区别在于“确认”对话框除了显示OK按钮外,还会显示一个 Cancel(“取消”)按钮,两个按钮可以让用户决定是否执行给定的操作。
- 为了确定用户是单击了OK还是Cancel,可以检查
confirm()方法返回的布尔值:true表示单击了OK,false表示单击了Cancel或单击了右上角的 X 按钮。
2.3.3 prompt()
- 这是一个“提示”框,用于提示用户输入一些文本。
- 提示框中除了显示 OK 和 Cancel 按钮之外,还会显示一个文本输入域,以供用户在其中输入内容。
prompt()方法接受两个参数:要显示给用户的文本提示和文本输入域的默认值(可以是一个空字符串)。
- 如果用户单击了 OK 按钮,则
promp()返回文本输入域的值;如果用户单击了 Cancel 或没有单击 OK 而是通过其他方式关闭了对话框,则该方法返回null。