第五周Day1

97 阅读2分钟

BOM概述:

Browser Object Model - 浏览器对象模型 - 专为操作浏览器准备的一些对象,没有任何标准,不由W3C制定规则,存在很大的兼容性问题,相对DOM使用较少。

Window对象: 在浏览器重扮演了两个角色:

1、代替了Global,充当全局对象;
2、代指当前窗口本身;

带来了网页新的打开方式:
    1、当前网页打开,可以后退:
        HTML:<a href="url" target="_self">内容</a> 
          JS:open("url","_self")
    2、当前网页打开,禁止后退:
        HTML:做不到;
          JS:location.replace("url") -- 替换掉当前页面,但是不会保存历史记录;
              因为history的存在,里面保存着当前页面的历史记录,当前窗口有了历史记录才能后退;
              而location里面保存着当前页面正在打开的url网址,它提供了.replace这个方法;
    3、新网页打开,打开多个:
        HTML:<a href="url" target="_blank">内容</a> 
          JS:open("url","_blank")
    4、新网页打开,只能打开一个:
        HTML:<a href="url" target="自定义name">内容</a> 
          JS:open("url","自定义name")
              其实每个窗口的底层都有一个name,_self指向的当前自己的name,_blank始终会得到新的name,
              而如果自定义name浏览器就会发现也就打开过这个窗口了,再次打开就会把这个窗口替换掉。

拓展:a标签的作用:

1、跳转页面
2、锚点
3、下载:<a href="文件名.exe/zip/rar">内容</a>
4、打开:<a href="文件名.txt/图片后缀">内容</a>
5、直接运行JS:<a href="javascript代码段">内容</a>

属性和方法

打开新窗口:var 新窗口=open("url","自定义name/target","widthheightlefttop")
特殊:没有第三个参数时,新窗口回合浏览器融为一体;
      有第三个参数时,新窗口会脱离浏览器独立存在,甚至可以用变量保存起来;
关闭窗口:window/新窗口.close();
移动窗口:新窗口.moveTo(lefttop);
修改窗口:新窗口.resizeTo(width,height);

获取屏幕的大小:screen.width/height
获取浏览器完整的大小:outerWidth/Height
获取文档显示区域的大小:inner.width/height

扩展:

event对象可以获取鼠标位置:21、在事件处理函数中的第一个形参会自动获取到事件对象event;
    2、获取鼠标的位置:
        获取相对于屏幕的坐标位置:screenX/Y
            获取相对于文档显示区域的坐标位置:e.clientX/Y
        获取相对于网页的位置:e.pageX/Y

定时器:

等待一段时间才会执行的代码,可能只执行一次也可能执行多次;

两种:
    1、周期性定时器:
        开启:var timer=setInterval(回调函数,延时)
        关闭:clearInterval(timer)
        
    2、一次性定时器:
        开启:var timer=setTimeout(回调函数,延时)
        关闭:clearTimeout(timer)
        
特殊点:不管哪种定时器的底层都是一样的,两者甚至可以互换;
        一次性 <=> 周期性