10 JavaScript高级BOM 01

一、BOM(浏览器对象模型-------->Browser Object Model)

先看看组成

10 JavaScript高级BOM 01

      1.概念

             将浏览器的各个组成部分封装成对象。

       2. 组成:

            * Window:窗口对象(重要)

            * Location:地址栏对象(重要)

            * History:历史记录对象    

            * Navigator:浏览器对象(不用)

            * Screen:显示器屏幕对象(不用)

       3.Window:窗口对象

            1.  与弹出框有关的方法: 

                    confirm()   方法   

                         显示带有一段消息以及确认按钮和取消按钮的对话框。

                        * 如果用户点击确定按钮,则方法返回true

                        * 如果用户点击取消按钮,则方法返回false 

            2. 与打开关闭有关的方法:

                    close()    关闭浏览器窗口。

                        * 谁调用我 ,我关谁

                    open()    打开一个新的浏览器窗口

                        * 返回新的Window对象

            3.与定时器有关的方式

                   setTimeout(参数1,参数2)    在指定的毫秒数后调用函数或计算表达式。

                        * 参数:

                            1. js代码或者方法对象

                            2. 毫秒值

                        * 返回值:唯一标识,用于取消定时器

                    clearTimeout()    取消由 setTimeout() 方法设置的 timeout。

                    setInterval(参数1,参数2)    按照指定的周期(以毫秒计)来调用函数或计算表达式。

                    clearInterval()    取消由 setInterval() 设置的 timeout。

                    clearInterval()    取消由 setInterval() 设置的 timeout。

 

 

          4. 特点

              * Window对象不需要创建可以直接使用 window使用。 window.方法名();

              * window引用可以省略。  方法名();

 

    4. Location:地址栏对象

            1. 创建(获取):

                1. window.location

                2. location

 

            2. 方法:

                * reload()    重新加载当前文档。刷新

            3. 属性

                * href    设置或返回完整的 URL

 

          

练习1---开关灯(事件绑定的两种方式)

10 JavaScript高级BOM 0110 JavaScript高级BOM 01

<body>

    <img id="lamp" src="img/off.gif" alt="电灯">

    <script>

        //第一种方式

        var lamp = document.getElementById("lamp");

          var flag = false;//关了

          lamp.onclick = function () {

              if (flag){

                  lamp.src = "img/off.gif";

                  flag = false;

              }else {//打开

                  lamp.src = "img/on.gif";

                  flag = true;

              }

          }

        //第二种方式

       /* var lamp = document.getElementById("lamp");

        var flag = false;//关了

        var fun = function () {

            if (flag){

                lamp.src = "img/off.gif";

                flag = false;

            }else {//打开

                lamp.src = "img/on.gif";

                flag = true;

            }

        }

       lamp.onclick = fun;*/

    </script>

</body>

 

练习2 已下三张图片实现轮播图

banner_1.jpg

10 JavaScript高级BOM 01

banner_2.jpg

10 JavaScript高级BOM 01

banner_3.jpg

10 JavaScript高级BOM 01

代码如下

<body>

    <img id="img1" src="img/banner_1.jpg" alt="轮播图">

    <script>

        var img = document.getElementById("img1");

        //1.定义fun方法,用来执行轮播操作

        var num = 1;

        //第一种定义方法

        var fun = function () {

            num++;

            if (num > 3){

                num = 1;

            }

            img.src = "img/banner_"+num+".jpg";

        }

        //第二种定义方法

       /* function fun(){

            num++;

            if (num > 3){

                num = 1;

            }

            img.src = "img/banner_"+num+".jpg";

        }*/

        //2.定时器,每隔2s执行fun方法

        setInterval(fun,2000);

    </script>

</body>

练习3------->倒计时5s跳到百度首页

    <body>

            <p>

                  <span id="span">5</span> s后自动跳转到百度首页

            </p>

            <script>

                  //1.定义方法执行操作

                  var num = 5;

                  function fun() {

                        var span = document.getElementById("span");

                        if(num <= 0) {

                              location.href = "https://www.baidu.com";

                        } else {

                              num--;

                              span.innerHTML = num;

                        }

                  }

                  setInterval(fun, 1000);

            </script>

      </body>

练习4:点击"显示定时器按钮",弹出是否确认,点击确认后,倒计时五秒弹出内容"我是定时器"

10 JavaScript高级BOM 01

 

<!DOCTYPE html>

<html lang="en">

      <head>

            <meta charset="UTF-8">

            <title>Title</title>

            <style>

                  #divs {

                        text-align: center;

                  }

                  

                  span {

                        color: red;

                  }

            </style>

      </head>

      <body>

            <div id="divs">

                  <input id="inputs" type="button" value="显示定时器的警告框" name="wtg" />

                  <p>

                        <span id="spans">5</span>秒后弹出框

                  </p>

            </div>

            <script>

                  var inputs = document.getElementById("inputs");

                  var num = 5;

                  var id;

                  inputs.onclick = function() {

                        var flag = confirm("是否确定?");

                        if(flag) {

                              id = setInterval(function() {

                                    if(num <= 0) {

                                          clearInterval(id);

                                          alert("我是定时器");

                                          return;

                                    }

                                    num--;

                                    document.getElementById("spans").innerHTML = num;

                              }, 1000);

                        }

                  };

            </script>

      </body>

</html>

练习5 每天的23:59:59,弹框"执行一次方法"

 

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script>

        //每天的23:59:59,执行一次方法

       function fun2() {

           var hours = new Date().getHours()+"";

           var minutes = new Date().getMinutes()+"";

           var seconds = new Date().getSeconds()+"";

           var str = hours+":"+minutes+":"+seconds;

           if (str == "23:59:59"){

               alert("方法每天执行一次")

           }

       }

       setInterval(fun2,1000);

    </script>

</head>

<body>

</body>

</html>