JavaScript BOM对象: window(定时器)

161 阅读3分钟

1.BOM:Browser Object Model

 浏览器 对象 模型
 提供了专门用于操作浏览器的API  -没有标准,使用较少,但大部分浏览器厂商已经统一实现了(老IE)

2.BOM对象:

window(定时器)、history、location、navigator、event、screen...

1.window对象:扮演了2个角色:

         1.浏览器中,window代替了ES的Global充当全局作用域
              包含了所有的全局对象、变量、函数
         2、指代当前浏览器的窗口
  •  1.网页打开新链接的方式
         提升用户的体验感:
        1.替换当前页面:可以后退:
             HTML:<a href="url">文字</a>
              JSopen("url","_self");
        2.替换当前页面:禁止后退:使用场景:电商网页:结账完毕后,不允许用户后退
            history对象:保存了当前窗口的历史记录
            location:保存了当前窗口正在打开的url
            location.replace("新url")  //替换当前网址、不会产生历史记录
        3.在新窗口打开,可以打开多个:
             HTML:<a href="url" target="_blank">文字</a>
             js:open("url","_blank");
        4.在新窗口打开,只能打开一个:使用场景:电商网页:跳转到支付结账页面,只允许用户打开一个
            HTML:<a href="url" target="自定义">文字</a>
            JS:open("url","自定义")
             自定义:窗口的底层都有一个名字,如果出现重复的名字则新窗口会替换掉原来的旧窗口
             扩展:a 标签可以做的事
                  1.跳转
                  2.描点
                  3.下载:<a href="xx.rar/zip/exe">文字</a>
                  4.打开图片:<a href="xx.图片后缀"/txt>文字</a>
                  5.直接书写js:<a href="javascript:js代码;">文字</a>
              
    
  • 2.window对象:属性和方法:
      属性:
      获取浏览器窗口的大小
        文档显示区域的大小:body部分
          innerWidth/innerHeight
        完整的浏览器大小:
          outerWidth/outerHeight
        屏幕的大小:
          screen.width/height
      方法:
      1.打开新窗口:var newW=open("url","自定义name","width= ,height=,left=,top=")
            特殊:如果没传入第三个参数,新窗口会和浏览器并为一体
                  如果传入第三个参数,新窗口会脱离浏览器
                  建议宽高不小于200
                  有可能会被浏览器拦截
      2.关闭窗口:窗口close();
      3.修改窗口的大小:新窗口.resizeTo(newW,newH)
      4.修改窗口的位置:新窗口.moveTo(x,y);                                      
      5.定时器:2种
         1.周期性定时器:先等待,在执行一次,在等待,在执行一次...
            开启:timer=setInterval((回调函数,间隔毫秒数);
            停止:clearInterval(timer);
         2.一次性定时器:先等待,在执行一次,结束
             开启:timet=setTimeout(回调函数,间隔毫秒数);
             停止:clearTimeout(timer);
         两种定时器底层相同,可以互换
    

    扩展:获取鼠标的坐标:

      1.事件中传入一个形参e->获得到事件对象event(其中一个作用获取鼠标的坐标)
      2.获取:
        e.screenX/Y;  //相对于屏幕
        e.clientX/Y;  //相对于浏览器客户端
        e.pageX/Y;  //相对于网页的
        
     鼠标跟随效果:关键点:
        1.绑定事件:window.onmousemove
        2.图片位置一定和鼠标位置一起
        3.图片的加载速度比JS的执行速度要慢,img.onlode=function(){
                                          //最后才会执行
                                          }           
    

    扩展:

    1.str.trim();   //去掉字符串开头结尾的空白字符 
    2.var bool=confirm("提示文字");//用户确认框
         用户点击确认 ->true
         用户点击取消 ->false