BOM
BOM介绍
全称 Browser Object Mode 浏览器对象模式
操作浏览器的API接口。比如浏览器自动滚动
Windows对象的顶层部分是BOM的顶层(核心)对象,所有的对象都是通过它延申出来的,也可以称为windowns的子对象。
DOM是BOM的一部分
windows对象:
- windows对象是JavaScript中的顶级对象
- 全局变量/自定义函数也是windows对象的属性和方法
- window对象下的属性和方法调用时,可以省略window
BOM的常见内置方法和内置对象
window对象
弹出系统对话框
比如说,alert(1)是window.alert(1)的简写,因为他是window的子方法。系统对话框有下面三种方法:
alert(); //不同浏览器中的外观是不一样的 confirm(); //兼容不好 prompt(); //不推荐使用
打开窗口 关闭窗口
1. 打开窗口
window.open('http://www.baidu.com','_block') // url: 要打开的地址 // target:新窗口的位置 可以是:_block _self _parent 父框架
2.关闭窗口
window.close(); // 关闭当前打开的页面
获取窗口的宽高
window.innerHeight; // 获取浏览器的内部高度 388 window.innerWidth; // 获取浏览器的内部宽度 1536 // 提示: 随着窗口的缩小,所以获取到的宽度和高度也会发生变化
Location对象
window.location可以简写为location。location相当于浏览器地址栏,可以将url解析为独立的片段
location对象的属性
- href:操作地址栏里的url 进行跳转
- host:主机名,包括端口
- hash:返回url#号后面的内容 包含#
- hostname:主机名
- pathname:url中的路径部分
- protocol:协议 一般http或者https
- search:查询字符串
navigator对象
window.navigator 的一些属性可以获取客户端的一些信息。
- useragent:系统,浏览器
- platform:浏览器支持的系统 win mac
console.log(navigator.userAgent); Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36 console.log(navigator.platform); Win32
history对象
返回和前进的操作
// 返回上一次 history.back(); history.go(-1) // 0表示刷新当前页面 // 前进一次 history.forward(); history.go(1)
screen对象(了解即可)
屏幕对象,不常用。
screen.availWidth // 可用的屏幕宽度 screen.availHeight // 可用的屏幕高度
定时器
在js的定时器中分为两种:setTimeout() 和 setInterval()
setTimeout()
只在指定时间后执行一次
// setTimeout(函数,时间) var t1 = setTimeout(fn,4000); var t2 = setTimeout(fn,1000); var t3 = setTimeout(fn,1000); function fn(){ alert('hello world;') } console.log(t1) clearTimeout(t2); // 去除定时器 clearTimeout(t3);
setIntervar()
在指定时间内周期循环执行
var t = setInterval(fn,1000); function fn(){ console.log('hello') } clearTimeout(t)