BOM的一点点知识

BOM:Browser Object Model 浏览器对象模型。也就是 JavaScript 将浏览器的各个组成部分封装为对象。

我们要操作浏览器的各个组成部分就可以通过操作 BOM 中的对象来实现。比如:我现在想将浏览器地址栏的地址改为 https://www.itheima.com 就可以通过使用 BOM 中定义的 Location 对象的 href 属性,代码: location.href = "https://itheima.com";

BOM 中包含了如下对象:

  • Window:浏览器窗口对象

  • Navigator:浏览器对象

  • Screen:屏幕对象

  • History:历史记录对象

  • Location:地址栏对象

下图是 BOM 中的各个对象和浏览器的各个组成部分的对应关系

1 Window对象

window 对象是 JavaScript 对浏览器的窗口进行封装的对象。

1.1 获取window对象

该对象不需要创建直接使用 window,其中 window. 可以省略。比如我们之前使用的 alert() 函数,其实就是 window 对象的函数,在调用是可以写成如下两种

  • 显式使用 window 对象调用

window.alert("abc");
  • 隐式调用

alert("abc")
1.2 window对象属性

window 对象提供了用于获取其他 BOM 组成对象的属性

也就是说,我们想使用 Location 对象的话,就可以使用 window 对象获取;写成 window.location,而 window. 可以省略,简化写成 location 来获取 Location 对象。

1.3 window对象函数

window 对象提供了很多函数供我们使用,而很多都不常用;下面给大家列举了一些比较常用的函数

setTimeout(function,毫秒值) : 在一定的时间间隔后执行一个function,只执行一次setInterval(function,毫秒值) :在一定的时间间隔后执行一个function,循环执行

confirm代码演示:

// confirm(),点击确定按钮,返回true,点击取消按钮,返回false
varflag=confirm("确认删除?");
alert(flag);

​下图是 confirm() 函数的效果。当我们点击 确定 按钮,flag 变量值记录的就是 true ;当我们点击 取消 按钮,flag 变量值记录的就是 false。

而以后我们在页面删除数据时候如下图每一条数据后都有 删除 按钮,有可能是用户的一些误操作,所以对于删除操作需要用户进行再次确认,此时就需要用到 confirm() 函数。

定时器代码演示:

setTimeout(function (){
    alert("hehe");
},3000);

当我们打开浏览器,3秒后才会弹框输出 hehe,并且只会弹出一次。

setInterval(function (){
    alert("hehe");
},2000);

当我们打开浏览器,每隔2秒都会弹框输出 hehe。

1.4 案例

需求:每隔1秒,灯泡切换一次状态

需求说明:

有如下页面效果,实现定时进行开灯、关灯功能

初始页面环境

<!DOCTYPE html>
<html lang="en">
<head>
    <metacharset="UTF-8">
    <title>JavaScript演示</title>
</head>
<body>
​
<input type="button"onclick="on()"value="开灯">
<img id="myImage"border="0"src="../imgs/off.gif"style="text-align:center;">
<input type="button"onclick="off()"value="关灯">
​
<script>
    functionon(){
        document.getElementById('myImage').src='../imgs/on.gif';
    }
​
    functionoff(){
        document.getElementById('myImage').src='../imgs/off.gif'
    }
​
</script>
</body>
</html>

代码实现:

<!DOCTYPE html>
<html lang="en">
<head>
    <metacharset="UTF-8">
    <title>JavaScript演示</title>
</head>
<body>
​
<input type="button"onclick="on()"value="开灯">
<img id="myImage"border="0"src="../imgs/off.gif"style="text-align:center;">
<input type="button"onclick="off()"value="关灯">
​
<script>
    functionon(){
        document.getElementById('myImage').src='../imgs/on.gif';
    }
​
    functionoff(){
        document.getElementById('myImage').src='../imgs/off.gif'
    }
    
    //定义一个变量,用来记录灯的状态,偶数是开灯状态,奇数是关灯状态
    var x=0;
    //使用循环定时器
    setInterval(function (){
        if(x%2==0){//表示是偶数,开灯状态,调用 on() 函数
            on();
        }else {  //表示是奇数,关灯状态,调用 off() 函数
            off();
        }
        x++;//改变变量的值
    },1000);
​
</script>
</body>
</html>

2 History对象

History 对象是 JavaScript 对历史记录进行封装的对象。

  • History 对象的获取

使用 window.history获取,其中window. 可以省略

  • History 对象的函数

这两个函数我们平时在访问其他的一些网站时经常使用对应的效果,如下图

当我们点击向左的箭头,就跳转到前一个访问的页面,这就是 back() 函数的作用;当我们点击向右的箭头,就跳转到下一个访问的页面,这就是 forward() 函数的作用。

3 Location对象

Location 对象是 JavaScript 对地址栏封装的对象。可以通过操作该对象,跳转到任意页面。

3.1 获取Location对象

使用 window.location获取,其中window. 可以省略

window.location.方法();
location.方法();

3.2 Location对象属性

Location对象提供了很对属性。以后常用的只有一个属性 href

代码演示:

alert("要跳转了");
location.href="https://www.baidu.com";

在浏览器首先会弹框显示 要跳转了,当我们点击了 确定 就会跳转到 百度 的首页。

3.3 案例

需求:3秒跳转到百度首页

分析:

  1. 3秒跳转,由此可以确定需要使用到定时器,而只跳转一次,所以使用 setTimeOut()

  1. 要进行页面跳转,所以需要用到 location 对象的 href 属性实现

代码实现:

document.write("3秒跳转到首页..."); 
setTimeout(function (){
    location.href="https://www.baidu.com"
},3000);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值