day 2-22

本文详细介绍了浏览器对象模型BOM,包括Window对象、页面加载、弹窗、定时任务setTimeout和setInterval的使用。此外,还涉及了location对象的历史导航和页面重载,navigator对象获取浏览器信息,以及history对象的历史记录操作。通过对这些概念和方法的讲解,读者能够深入理解浏览器交互和页面控制。
摘要由CSDN通过智能技术生成

BOM

BOM:browser object model浏览器对象模型

提供了独立于内容可以与浏览器窗口进行互动的对象结构

由多个对象组成,代表浏览器窗口对象的Window对象是BOM顶层对象,其他对象都是其子对象

window

浏览器顶级对象,调用其下方法时可以省略window
特殊:window.name、window.top

加载对象

window.onload

网页加载完毕后立刻执行的操作

一个要执行的函数语法:

window.onload = funcRef;

在页面加载完成后 funcRef 方法会被调用。

多个要执行的函数语法:

window.onload=function(){
    Func1();
    Func2();
    Func3();
    .....
}

window.open()

window.open('https://www.baidu.com'); 
//打开一个窗口直接跳转
window.open('https://www.baidu.com', 'wroxWindow', 'height=400,width=400,top=10,left=10,resizable=yes');
// 打开400x400像素可缩放的小窗口,离屏幕左边和顶部10px,第二个参数不是已有的参数

height/width:新窗口的宽高
left/top:距离屏幕的位置
resizable:是否可以拖动改变窗口大小 默认为no

window.open()返回一个对新窗口的引用
如果浏览器内置的弹窗屏蔽机制阻止了弹窗,window.open()可能会返回null
需要使用try/catch包装起来

let blocked = false;
    try {
      let wroxWin = window.open('https://www.baidu.com', '_blank');
      if (wroxWin == null) {
        blocked = true;
      }
    } catch (ex) {
      blocked = true;
    }
    if (blocked) {
      alert('不让弹了~')
    }

setTimeout()/setInterval()

区别:
​ setTimeout():用于指定一段时间后执行某些代码

​ setInterval():每隔一段时间执行某些代码

setTimeout()

参数:

  • 第一个参数:一个函数,或者包含JS代码的字符串;

  • 第二个参数:毫秒,也就是说经过多少毫秒后执行这些代码

  • JS维护了一个任务队列,并不是说多少毫秒后就一定能执行这段程序,这个毫秒只是将这个程序添加进任务队列中,先进先出

  • 如果队列不为空,必须等前面队列中的代码执行完后才能执行

示例:

setTimeout(() => {
      alert('tan');
    }, 3000)   //经过3s后弹出,但是不一定是三秒

clearTimeout() 清除计时任务

let setTime = setTimeout(() => {
      alert('tan');
    }, 3000);
clearTimeout(setTime);
setInterval()

参数:

  • 第一个参数:一个函数,或者包含JS代码的字符串;
  • 第二个参数:____毫秒执行一次代码;

示例:

setInterval(() => {
      alert('好~');
    }, 3000); //3s弹一次
  • clearInterval() 清除定时任务

系统对话框

1. alert()
2. confirm()
确认对话框,有确定和取消两个按钮,可以根据点击的不同按钮进行不同的事件操作
3. prompt()
提示框,提示用户输入信息,提示框会有一个文本框,有确定和取消两个按钮。点击确定返回文本框输入的值,取消或者关闭提示框,返回null;
没输入时返回一个空字符串

location 对象

操作地址

  • assign()
location.assign('https://www.baidu.com/');
打开页面立即跳转,同时在浏览器历史记录中增加一条记录
  • replace()
 location.replace('https://www.baidu.com/');
打开页面跳转 记录不会被添加,浏览器后退按钮无法使用
  • reload()
 location.reload(); 
 //重新加载 不一定从服务器加载
 location.reload(true);  
 //重新加载 从服务器加载

navigator 对象

userAgent(用户代理)来判断浏览器信息

history 对象

导航
  • history.go()

    • +n 为前进n页 类似浏览器的向前按钮
    • -n 为后退n页 类似浏览器的向后按钮
history.go(-2);	 
//后退两页
history.go(1);
//前进一页
  • history.back()

加载 history 列表中的前一个 URL

history.forward();

可以跳转到下一个页面

history.length 返回历史记录中有多少条记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值