一、BOM对象
BOM:Brower Object Model,指的是浏览器对象模型。
作用:操作浏览器窗口及窗口上的控件,实现用户和页面的动态交互。
浏览器对象:浏览器提供的一系列内置对象的统称。
BOM浏览器对象模型:各内置对象之间按照某种层次组织起来的模型的统称。
window对象是BOM的顶层(核心)对象。
其他的对象都是以属性的方式添加到window对象下,也可称为window的子对象。
1、document(文档对象):也称为DOM对象,是HTML页面当前窗体的内容,同时也是JavaScript重要组成部分之一。
2、history(历史对象):主要用于记录浏览器的访问历史记录,也就是浏览网页的前进与后退功能。
3、location(地址栏对象):用于获取当前浏览器中URL地址栏内的相关数据。
4、navigator(浏览器对象):用于获取浏览器的相关数据,例如浏览器的名称、版本等,也称为浏览器的嗅探器。
5、screen(屏幕对象):可获取与屏幕相关的数据,例如屏幕的分辨率等。
二、window对象
1、全局作用域
window对象:是BOM中所有对象的核心,同时也是BOM中所有对象的父对象。
定义在全局作用域中的变量、函数以及JavaScript中的内置函数都可以被window对象调用。
2、弹出对话框和窗口
window对象中除了前面提过的alert()和prompt()方法外,还提供了很多弹出对话框和窗口的方法,以及相关的操作属性。
方法
所有的属性和方法在常见的浏览器(如Edge、Chrome等)中全部支持。
1、prompt()方法
作用:弹出对话框和窗口,用于生成用户输入的对话框。
2、confirm()方法
作用:弹出一个确认对话框,该对话框中包含提示消息以及确认和取消按钮。
参数:用于设置确认的提示信息。
返回值:点击“确定”按钮,返回true。点击“取消”按钮,返回false。
3、open()方法
作用:用于打开一个新的浏览器窗口,或查找一个已命名的窗口。
语法:open(URL, name, specs, replace)。
参数(URL):打开指定页面的URL地址,若没有指定,则打开一个新的空白窗口。
参数(name):指定target属性或窗口的名称。
参数(specs):用于设置浏览器窗口的特征(如大小、位置、滚动条等),多个特征之间使用逗号分隔。
参数(replace):设置为true,表示替换浏览历史中的当前条目,设置false(默认值),表示在浏览历史中创建新的条目。
4、close()方法
作用:与open()方法功能相反的是close()方法,用于关闭浏览器窗口,调用该方法的对象就是需要关闭的窗口对象。
4、窗口位置和大小
BOM中用来获取或更改window窗口位置,窗口高度与宽度,文档区域高度与宽度的相关属性和方法有很多。
目前只有window.open()方法打开的的窗口和选项卡(Tab),FireFox和Chrome浏览器才支持口位置和大小的调整。
5、框架操作
window对象提供的frames属性可通过集合的方式,获取HTML页面中所有的框架,length属性就可以获取当前窗口中frames的数量。
6、定时器
JavaScript中可通过window对象提供的方法实现在指定时间后执行特定操作,也可以让程序代码每隔一段时间执行一次,实现间歇操作。
setTimeout()和setInterval()方法区别:
相同点:都可以在一个固定时间段内执行JavaScript程序代码。
不同点:setTimeout()只执行一次代码,setInterval()会在指定的时间后,自动重复执行代码。
三、location对象
1、更改URL
URL:Uniform Resource Locator,统一资源定位符。
在Internet上访问的每一个网页文件,都有一个访问标记符,用于唯一标识它的访问位置,以便浏览器可以访问到,这个访问标记符称为URL。
location对象提供的用于改变URL地址的方法,所有主流的浏览器都支持。
reload()方法的唯一参数,是一个布尔类型值,将其设置为true时,它会绕过缓存,从服务器上重新下载该文档,类似于浏览器中的刷新页面按钮。
2、获取URL参数
Web开发中,经常通过URL地址传递的参数执行指定的操作,如商品的搜索,排序等。此时,可以利用location对象提供的search属性返回URL地址中的参数。
获取URL的指定部分:location.属性名。
设置URL的指定部分:location.属性名 = 值。
3、定时跳转
思路:
(1)编写定时跳转的HTML页面。
(2)获取指定的秒数,并减1写入页面。
(3)当秒数大于0时,利用setTimeout()循环倒计时。
(4)当秒数小于等于0时,利用location.href跳转到指定的URL地址中。
四、history对象
1、历史记录跳转
history对象可对用户在浏览器中访问过的URL历史记录进行操作。
出于安全方面的考虑,history对象不能直接获取用户浏览过的URL,但可以控制浏览器实现“后退”和“前进”的功能。
go()方法可根据参数的不同设置,完成历史记录的任意跳转。当参数值是一个负整数时,表示“后退”指定的页数;当参数值是一个正整数时,表示“前进”指定的页数。
当go()方法的参数为1或-1时,与forward()和back()方法的作用相同。
2、无刷新更改URL地址
HTML5为history对象引入了history.pushState()和history.replaceState()方法,用来在浏览历史中添加和修改记录,实现无刷新更改URL地址。
参数state:表示一个与指定网址相关的状态对象,此处可以填null或空字符串。
参数title:表示新页面的标题,可以填null或空字符串。
参数url:表示新的网址,并且必须与当前页面处在同一个域中。
pushState()方法会改变浏览器的历史列表中记录的数量。
replaceState()方法仅用于修改历史记录,历史记录列表的数量不变,与location.replace()方法的功能类似
五、navigator对象
1、navigator对象提供了有关浏览器的信息,主流浏览器中存在的属性和方法如下。
六、screen对象
1、screen对象用于返回当前渲染窗口中与屏幕相关的属性信息,如屏幕的宽度和高度等。以下展示主流浏览器中支持的screen属性。