9.BOM 浏览器相关

107 阅读2分钟

BOM:Browser Object Model

计时器

计时器是异步的,当时机成熟之后才会执行. 计时器会返回一个数字,该数字表示计时器的编号

  • setTimeout方法:指定时间到达后运行某个函数
    • clearTimeout方法:清除计时器
<button id="btn1">点击开始</button>
<button id="btn2">清除计时器</button>
   <script>
       var timer1;
       btn1.onclick = function() {
           //3000毫秒之后,运行指定的函数
           timer1 = setTimeout(function() {
               console.log("计时完成1");
           }, 3000);
           console.log("点击事件");
       }

       btn2.onclick = function() {
           clearTimeout(timer1);
       }
   </script>
  1. 点击事件不会等到timer1执行完再去执行,是执行完timer1 = setTimeout这一句后立即执行,console.log("点击事件");
  2. 获取到的timer1是为了后面的清除操作。
  3. setTimeout(函数,毫秒数)

如何利用setTimeout实现间隔一个时间多次调用呢? 方法就是使用回调函数进行递归,代码如下:

<script>
        var timer1, num = 0;
        var h1 = document.querySelector("h1");
        btn1.onclick = function() {
            interval(function(){
                num++;
                h1.innerHTML = num;
            }, 300);
        }
        
        //核心代码
        function interval(callback, duration) {
            timer1 = setTimeout(function(){
                callback();
                interval(callback, duration);
            }, duration);
        }

        btn2.onclick = function() {
            clearTimeout(timer1);
        }
  </script>
  • setInterval方法:指定间隔时间到达后运行某个函数
    • clearInterval方法:清除计时器
   <script>
        var timer1, num = 0;
        var h1 = document.querySelector("h1");
        btn1.onclick = function() {
        //会调用多次
            timer1 = setInterval(function() {
                num++;
                h1.innerHTML = num;
            }, 3000);
        }
        btn2.onclick = function() {
            clearInterval(timer1);
        }
    </script>

setTimeout方法 和 setInterval方法 清除的方法也是不一样的。

window对象

自身方法

  • open

打开一个新窗口

open("页面路径", "打开目标", "配置")

 <button>打开新页面</button>
    <iframe name="myframe" src="" frameborder="0"></iframe>
    <script>
        var w;
        document.querySelector("button").onclick = function() {
            w = window.open("test2.html", "_self")
            
        }
    </script>
  • alert
  • confirm
  • prompt

对象属性

  • document document.write 在当前文档流中写入内容,如果当前文档流不存在,则新开一个文档流。

  • location:地址栏对象

location对象的属性: image.png

href属性:得到目前地址 其他属性参考location.jpg 可以使用location.href = 某个地址,实现跳转。

reload方法:刷新当前页面,也是location的方法。

  • navigator image.png

  • history:历史记录

go方法 back方法 forword方法

  • console

log方法:打印对象的valueOf的返回值,如果一个对象重写了valueof方法,那么console.log 和console.dir 打印的结构就不一样了,如果没有重写的话,打印应该是一样的。

dir方法:打印对象结构

tiem方法和timeEnd方法:用于计时