### JavaScript的BOM之Window对象 #### 一、概念 BOM(Browser Object Model)即浏览器对象模型,它是JavaScript中的一个重要组成部分,为开发者提供了与浏览器交互的能力。BOM定义了一系列的对象,通过这些对象可以访问浏览器的功能,从而实现对浏览器窗口进行操作。 ##### Window对象 Window对象是BOM的核心,它代表了浏览器的窗口,并提供了很多属性和方法来控制窗口的行为。Window对象实际上是一个全局对象,所有的顶级对象都挂载在其下。 - **基本属性**: - `closed`:返回窗口是否已经被关闭。 - `defaultStatus`:设置或返回窗口状态栏中的默认文本。 - `document`:返回对当前文档(通常是HTML页面)的引用,这是一个Document对象。 - `frames`:返回窗口中所有命名的框架的集合。 - `history`:返回对History对象的引用,表示浏览器的历史记录。 - `innerHeight` 和 `innerWidth`:返回窗口的文档显示区域的高度和宽度。 - `localStorage`:提供在浏览器中持久化存储数据的能力。 - `length`:返回窗口中的框架数量。 - `location`:返回窗口或框架的Location对象,可以用来获取或设置URL。 - `name`:返回或设置窗口的名称。 - `navigator`:返回对Navigator对象的引用,提供关于浏览器的信息。 - `opener`:返回对创建此窗口的窗口的引用。 - `outerHeight` 和 `outerWidth`:返回窗口的外部高度和宽度,包括工具栏和滚动条。 - `pageXOffset` 和 `pageYOffset`:返回当前页面相对于窗口左上角的位置。 - `parent`:返回父窗口。 - `screen`:返回对Screen对象的引用,提供关于用户屏幕的信息。 - `screenLeft` 和 `screenTop`:返回相对于屏幕窗口的x坐标和y坐标。 - `screenX` 和 `screenY`:同样返回相对于屏幕窗口的x坐标和y坐标。 - `sessionStorage`:提供临时存储数据的能力,在窗口或标签页关闭后会删除这些数据。 - `self`:返回对当前窗口的引用。 - `status`:设置窗口状态栏的文本。 - `top`:返回最顶层的父窗口。 - **常用方法**: - `alert()`:显示一个带有消息和确认按钮的警告框。 - `atob()` 和 `btoa()`:用于解码和编码Base64字符串。 - `blur()`:将键盘焦点从顶层窗口移开。 - `clearInterval()` 和 `clearTimeout()`:分别用于取消由`setInterval()`和`setTimeout()`设置的定时器。 - `close()`:关闭浏览器窗口。 - `confirm()`:显示一个带有消息以及确认和取消按钮的对话框。 - `createPopup()`:创建一个弹出窗口。 - `focus()`:将键盘焦点给予一个窗口。 - `getSelection()`:返回一个Selection对象,表示文档中被选中的文本。 #### 二、案例 下面是一些使用Window对象的示例代码: ```javascript // 获取当前窗口滚动位置 var currentScrollPosition = window.pageYOffset; console.log("当前滚动位置:", currentScrollPosition); // 设置窗口滚动到指定位置 window.scrollTo(0, 500); // 创建一个弹出窗口 window.open("https://www.example.com", "myWindow", "width=500,height=500"); // 获取当前窗口大小 var width = window.innerWidth; var height = window.innerHeight; console.log("当前窗口宽度:", width); console.log("当前窗口高度:", height); // 设置窗口大小 window.resizeTo(800, 600); ``` #### 三、属性详解 - **closed**:返回布尔值,指示窗口是否已关闭。 - **defaultStatus**:用于设置或获取窗口状态栏的默认文本。 - **document**:返回Document对象,用于访问当前加载的HTML文档。 - **frames**:返回一个包含窗口中所有命名框架的数组。 - **history**:返回History对象,用于处理浏览器的历史记录。 - **innerHeight** 和 **innerWidth**:返回窗口内部可视区域的高度和宽度。 - **localStorage**:提供了一个简单的键值对存储方式,数据在浏览器关闭后仍然存在。 - **length**:返回窗口中的框架数量。 - **location**:返回或设置窗口的URL地址。 - **name**:设置或获取窗口的名称。 - **navigator**:返回Navigator对象,提供有关浏览器的信息。 - **opener**:返回创建当前窗口的窗口的引用。 - **outerHeight** 和 **outerWidth**:返回窗口外部的高度和宽度,包括工具栏和滚动条。 - **pageXOffset** 和 **pageYOffset**:返回文档相对于视口的位置。 - **parent**:返回当前窗口的父窗口。 - **screen**:返回Screen对象,提供有关用户屏幕的信息。 - **screenLeft**、**screenTop**、**screenX** 和 **screenY**:返回窗口相对于屏幕的位置。 - **sessionStorage**:提供了一个键值对存储方式,数据在浏览器关闭后会被清除。 - **self**:返回当前窗口的引用。 - **status**:设置窗口状态栏中的文本。 - **top**:返回最顶层的父窗口。 #### 四、方法详解 - **alert()**:弹出一个警告框,通常用于提示用户。 - **atob()** 和 **btoa()**:用于Base64编码和解码。 - **blur()**:将窗口失去焦点。 - **clearInterval()** 和 **clearTimeout()**:取消定时器。 - **close()**:关闭当前窗口。 - **confirm()**:弹出一个确认对话框。 - **createPopup()**:创建一个新的弹出窗口。 - **focus()**:将焦点设置到当前窗口。 - **getSelection()**:返回文档中被选中的文本。 Window对象提供了丰富的API,让开发者能够更好地控制和管理浏览器窗口。通过熟练掌握Window对象的相关属性和方法,开发者可以实现更加灵活和功能强大的Web应用。
- 粉丝: 3w+
- 资源: 214
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助