ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
BOM:BrowserObjectModel,浏览器对象模型,提供JS中对浏览器的各种操作的对象,是JS应用中唯一没有相关标准的部分,这事BOM经常出现问题的所在,主要用于处理浏览器窗口与框架,浏览器特有的JS扩展也被默认为BOM的一部分,而各浏览器之间的公有对象就成了默认的标准。本篇文章将主要介绍window对象。 ![](https://box.kancloud.cn/2016-02-17_56c43e6810513.jpg) ## 属性 世界上本没有模型,用的多了也就成了模型。模型便是一个可供参考的东西,BOM中的一系列通用的对象便构成了这个模型,其结构可展示为:![](https://box.kancloud.cn/2016-02-17_56c43e6849cbb.jpg) window的六大属性,同时它们也是对象: document主要操作web加载的网页文档; frames为窗口框架对象数组; history保存用户上网记录; location提供加载的文档有关信息以及控制页面跳转; navigator对象存储浏览器名称及版本信息; screen显示屏幕相关信息。 其中document对象属性下也有几个重要的属性对象,以document为核心的对文档进行操作的各个对象组成的结构便是大家所熟悉的DOM,从这一点看来,DOM其实是BOM的一个子集. window对象除了提供了旗下的六大对象属性外,还拥有设置浏览器信息的一些基本属性,主要如下 ![](https://box.kancloud.cn/2016-02-17_56c43e68a7060.jpg) 我们经常需要过去浏览器的位置及大小信息,由于BOM没有统一的标准,针对不同浏览器会有不同的属性进行实现,这时候我们就需要做些跨浏览器的兼容性操作,使得针对不同浏览器都能够获取对象的数据。 通过使用typeof属性来判断浏览器是否支持对应的属性,进而采用不同的措施便是很好的兼容性操作的方法,以后可针对具体情况进行应用。 ## 方法 window对象提供的几个主要方法如下图: ![](https://box.kancloud.cn/2016-02-17_56c43e6904d1f.jpg) 图中对方法进行了简单的分类,每个方法再往下分便是参数了,返回值依各自的情况不同而不同。见名知意,方法名也不例外,看到了这些方法的名称,其实际作用估计也已猜到了一半,在此便不再详细说明。 window对象也提供了另外的一些方法:focus()/blur()、对应open()的close()方法、scroll()滚动至指定像素点位置、print()/find()分别调出打印对话框以及查找对话框。 ## 总结 BOM,实际上是一组对象的集合,而window是这组对象的核心,了解了它,对整个浏览器对象模型也就有了结构以及作用上的认识。