概念
BOM(Browser Object Model) 是指浏览器对象模型,浏览器对象模型提供了独立于内容的、可 以与浏览器窗口进行互动的对象结构。BOM 由多个对象组成,其中代表浏览器窗口的 Window 对象是 BOM 的顶层对象,其他对象都是该对象的子对象。我们在浏览器中的一些操作都可以使用BOM的方式进行编程处理,比如:刷新浏览器、后退、前进、在浏览器中输入URL等。
window对象
window 对象是浏览器的顶级对象,当调用 window 下的属性和方法时,可以省略 window。
注意:window下两个特殊的属性 window.name、window.top。name属性为预定义好的属性,如果定义同名的全局变量,只会在原有属性上进行赋值,且只能是字符串格式的值。而top属性相当于一个指向的是顶层对象window的指针,并且是只读的,不可更改。
对话框
- 警示框:alert();
- 提示框:prompt();
- 确定或取消:confirm();
confirm方法有返回值,点击确定返回true,点击取消返回false
在实际工作中比较少使用对话框,对话框弹出后会阻挡后续程序加载,不同浏览器存在弹出后样式不同,以及不关闭弹框则无法关闭页面的问题。
加载事件
我们可以给 window 对象或者 <img> 等元素添加 onload 加载事件,表示只有绑定事件的元 素加载完毕才能触发事件,才能执行事件函数。
其中 window 对象加载完毕:指的是所有HTML结构加载完,并且外部引入资源(js、css、img、 视频)也加载完毕。
利用 window.onload 事件,可以将 js 代码提前到 html 结构之前。
注意:一个页面中只能有一个 window.onload 事件。
延时器与清除延时器
延时器是 window 对象的一个方法,类似于定时炸弹。
语法:window.setTimeout(func,time);
第一个参数:延时执行的函数,可以是匿名函数定义,或者是一个函数名的引用,注意不要加 () 。
第二个参数:延时的时间,以毫秒计数,1000 毫秒等于 1 秒。
功能:在指定的时间后,延迟执行一个函数。
清除延时器是 window 对象的一个方法。
语法:window.clearTimeout(timeout);
参数:指定的延时器变量名引用。
功能:清除指定的延时器。
注意:清除的延时器需要将延时器存储到一个变量中,便于后期清除调用。
定时器与清除定时器
定时器是 window 对象的一个方法,相当于定时闹钟,每隔固定的时间响一次
语法:window.setInterval(func,interval);
第一个参数:每次执行的函数,可以是匿名函数定义,或者是一个函数名的引用,注意不要 加 () 。
第二个参数:时间间隔,以毫秒计数,1000 毫秒等于 1 秒。
功能:每隔一个指定的时间,周期性的执行一个函数。
清除定时器是 window 对象的一个方法
语法:window.clearInterval(timer);
参数:指定的定时器变量名引用。
功能:清除指定的定时器。
注意:清除的定时器需要存储到一个变量中,便于后期清除调用。
location 对象
location 对象是 window 对象下的一个属性,使用的时候可以省略 window 对象,可以获取或者设置浏览器地址栏的 URL 。
可以使用 chrome 的控制台查看 location 对象成员,也可以查询 Location - Web API 接口参考 | MDN (mozilla.org)
常见属性方法 | 说明 |
---|---|
href | 用于输出URL地址,重新赋值,可以跳转到新页面,并且记录历史location.href = "http://www.lagou.com";
|
assign() | 委派,作用 与 href 属性一样,可以设置页面跳转的地址location.assign("http://www.lagou.com");
|
replace() | 替换,用于替换掉地址栏中当前的网址,但是不记录历史location.replace("http://www.lagou.com");
|
reload() | 重新加载,类似键盘中 f5 功能,类似于false效果, ctrl+f5 强制刷新,从服务器获取页面,相当于 true 的效果。 参数:true 强制从服务器获取页面,false 如果浏览器有缓存网页的话,会直接从缓存中获取页面。 |
URL
统一资源定位符 (Uniform Resource Locator, URL)
URL的组成:scheme://host:port/path?query#fragment
例如:http://www.lagou.com:80/a/b/index.html?name=zs&age=18#bottom
名称 | 说明 |
---|---|
scheme | 通信协议,常用的http,ftp,maito等 |
host | 主机,服务器(计算机)域名系统 (DNS) 主机名或 IP 地址。 |
port | 端口号,整数,可选,省略时使用方案的默认端口,如http的默认端口为80。 |
path | 路径,由零或多个'/'符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。 |
query | 查询,可选,用于给动态网页传递参数,可有多个参数,用'&'符号隔开,每个参数 的名和值用'='符号隔开。例如:name=zs |
fragment | 信息片断,字符串,锚点. |
history 对象
history 对象是 window 对象下的一个属性,使用的时候可以省略 window 对象,可以与浏览器历史记录进行交互,浏览器历史记录是对用户所访问的页面按时 间顺序进行的记录和保存。
back()
返回至上一页面;
forward()
前进到下一页面;
go()
传入整数参数作为跳转次数,正数为前进次数,负数为后退次数。