关于BOM的学习总结

第四章 浏览器对象模(BOM)总结前端

  本章主要讲解了浏览器对象模型BOM的基本概念,以及windowdocumentlocationnavigatorscreen五个对象的经常使用属性及方法。node

  其中window对象是BOM的核心,咱们能够经过windowmoveBy()resizeTo()等方法移动、调节浏览器窗口位置、大小。但因为缺少相应标准,不一样的浏览器在使用该方法时获得的结果并不同,例如,若使用moveBy(100,100)移动窗口,只有IE下能获得正确的结果,ChromeFF却获得不一样的结果或者有些状况下甚至没有任何效果。值得一提的是,IE提供了window.screenLeftwindow.screenTop对象来判断浏览器窗口位置,在IE8中,这两个对象获取的是浏览器窗口视口左上角的位置(不包括顶部菜单栏),ChromeFF也支持此属性,但所获取的是整个浏览器左上角的位置,不过在较新的IE11中,所获取的位置已经与ChromeFireFox达成了一致。而且window对象的特性字符串也只在IE下可用,例如scrollableresizable等,ChromeFF根本不支持此属性。浏览器

  Window对象下还有一个opener属性,用于新窗口对打开它的父窗口的引用,可是此属性在IE8下并不支持。学习

  Window对象下咱们用到较多的两个方法即是时间暂停setTimeout()和时间间隔setInterval()两个方法,网页上的广告图片轮播即可以它们来实现。spa

本章中另一个重要的对象即是document。它是惟一一个既属于BOM又属于DOM的对象。较为有意思的是write()方法实际上是属于BOM下的document的一个方法,这里也就产生了一个问题,如何区分document的方法和属性到底属于BOM仍是DOM呢?书上列举了documentformsimages集合,但经过document.forms[0]得到的表单的nodeType值为1,分明是文档结构模型中的一个元素节点,这二者之间到底有没有一个明确的区分界限呢?orm

  BOM中另外三个对象locationnavigatorscreen彷佛在平常应用中至关较少。但其实它们仍是有用武之地的,例如,在本次JS打飞机游戏中,我便经过给“从新开始”按钮添加一个location.reload()方法来从新加载了页面。而一样因为缺少标准,navigator对象的属性和方法就造成了一片混乱。Screen对象下的colorDepth方法在IE8下获得的是颜色位数是32位,而ChromeFF下则是24位,但在IE11下,它也是24位了,这样的改变对于咱们前端开发人员而言,无疑是一个较大的福音。 对象

  技术的提高不能只靠保守本身的固有资本,乐于分享、善于学习,才能使咱们收获更多,连微软均可以改变,咱们为何不能呢?游戏