高程12章,Bom

125 阅读3分钟

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 排版