BOM
BOM提供了网页无关的浏览器功能对象,
window对象:bom的核心,表示浏览器实例,window对象在浏览器有两个省份,一个是JS中的Global对象,另外就是浏览器窗口JS接口,这意味着网页中定义的对象,函数,变量,都是以window作为其Glogal对象,都可以访问其上定义的parseInt(),
Golbal作用域:因为 window 对象被复用为ECMAScript的 Global 对象,所以通过 var 声明的所有全局变量和函数都会变成 window 对象的属性和方法
窗口关系:top对象始终直系那个浏览器窗口本身,而parent对象始终指向当前窗口的符窗口,如果当前就是父窗口,则parent等于top,都等于window
视口位置
浏览器窗口通常无法满足完整显示整个页面,为此,用户可以通过滚动在有限的视口中查看文档,
- scroll()和scrollTo()接受两个参数。这两个参数表示要滚动到的坐标,
- scrollBy()表示滚动的距离
- behavior:'auto'正常滚动,‘smooth’平滑滚动
定时器
- setTimeout() 用于指定在一定时间后执行某些代码,而
- setInterval() 用于指定 每隔一段时间执行某些代码。
// 设置超时任务
let timeoutId = setTimeout(() => alert("Hello world!"), 1000);
// 取消超时任务
clearTimeout(timeoutId);
只要是在指定时间到达之前调用 clearTimeout() ,就可以取消超时任务。在任务执行后再调用
clearTimeout() 没有效果。
setInterval() 方法也会返回一个循环定时ID,可以用于在未来某个时间点上取消循环定时。要
取消循环定时,可以调用 clearInterval() 并传入定时ID。看下面这个例子
let num = 60,
intervalId = null;
let main = 0;
let incrementNumber = function() {
num--; // 如果达到最大值,则取消所有未执行的任务
console.log(num)
if (num == main) {
clearInterval(intervalId);
alert("重新发送");
}
}
intervalId = setInterval(incrementNumber, 1000);
小结:这个例子是一个倒计时的案例,一般用在获取验证码等地方,首先定义一个终止和开始的值,
然后定义计时器id,然后写运算函数,确定停止条件,停止要传入id,最后用这个定时器id调用
系统对话框
- alert() 方法在本书示例中经常用到。它接收一个要显示给用户的字符串,会弹出对话框展示内容,对话框只有一个确定按钮,只接受一个参数
- confirm,是确认框,有两个按钮,确认和取消,他有返回值,true表示用户点击确认,false表示用户点击取消
- prompt(),提示框,有两个参数,第一个提示的内容,第二个默认显示的内容,如果用户点击ok按钮,会返回文本框中的值,如果点击cancel,则返回一个null
let result = prompt("What is your name? ", "");
if (result !== null) {
alert("Welcome, " + result);
}
localtion对象
- 最有用的BOM对象之一,常用于导航功能,
属性 描述
hash 返回一个URL的锚部分
host 返回一个URL的主机名和端口
hostname 返回URL的主机名
href 返回完整的URL
pathname 返回的URL路径名。
port 返回一个URL服务器使用的端口号
protocol 返回一个URL协议
search 返回一个URL的查询部分
方法
assign() 载入一个新的文档
reload() 重新载入当前文档
replace() 用新的文档替换当前文档
具体用法,自行百度一下,搬过来没太大意思
history
本文使用 mdnice 排版