BOM

来源:互联网 发布:cdma是什么网络模式 编辑:程序博客网 时间:2024/06/06 00:47

1.BOM  (Browser Object Model)--浏览器对象模型,是浏览器的内置对象管理模型。

在前端页面开发时,可以通过对浏览器的内置对象进行控制,提高html页面的动态效果,增强用户对页面文件的体验。


2.javascript由三个部分组成,ECMAScript,DOM和BOM。

  • DOM是W3C的标准,所有浏览器公共遵守的标准。
  • BOM是各个浏览器厂商根据DOM在各自浏览器上的实现,不同浏览器定义有差别,所以实现方式不同。
  • 区别:DOM描述了处理网页内容的方法和接口,BOM描述了与浏览器进行交互的方法和接口。

3.BOM提供了很多对象(如window对象,location对象,navigator对象,screen对象,history对象..),用于访问浏览器的功能。


4.window对象 -- BOM的核心对象,它表示浏览器的一个实例,即浏览器中打开的窗口。window对象具有双重角色,它既是通过js访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象。这意味着在网页中定义的任何一个对象,变量和函数,都以window作为其Global对象。

全局作用域
  • 全局作用域中声明的变量,函数都会自动变成window对象的属性和方法。但是与在window对象上直接定义属性还是有区别的:全局变量不能通过delete操作符删除,而直接定义的属性可以.(全局变量的Configurable特性值为false)
  • 尝试访问未声明的变量会抛出错误,但是通过查询window对象,可以知道某个可能未声明的变量是否存在。

窗口关系及框架

  • 如果文档包含框架(frame 或 iframe 标签),浏览器会为HTML文档创建一个window对象,并为每个框架创建一个额外的window对象,并且保存在frames集合中。
  • 最好使用 top对象 来引用这些框架,原因:不同层次的window对象的存在,无法确保window对象指向最高层的框架。
  • 这里介绍与框架有关的3个对象:top对象,parent对象和self对象。这些对象都是window对象的属性,可以通过  window.parent, window.top等形式访问。
  • top对象  始终指向最高(最外)层的框架,也就是浏览器窗口。
  • parent对象 始终指向当前框架的直接上层框架。
  • self对象 始终指向window,可以和window对象互换使用。
窗口位置

  • screenLeft 和 screenTop属性,screenX 和 screenY属性,分别表示窗口相对于屏幕左边与上边的位置。
  • 不同浏览器有小差别,无法在跨浏览器的条件下精确定位。
  • 使用 moveTo() 和 moveBy(),但是可能会被浏览器禁用,并且只能对最外层的window对象使用。
窗口大小

  • 因为存在浏览器兼容问题,故无法确定浏览器窗口的大小,但是可取得页面视口的大小:
  • 调整浏览器窗口的大小(可能被禁用)
导航和打开窗口

  • window.open() 方法:返回一个指向新窗口的引用。一共接受4个参数:要加载的URL,窗口目标,一个特性字符串以及一个表示新页面是否取代浏览器历史记录中当前加载页面的布尔值。一般传递第一个参数即可。若传递了第二个参数,而且该参数是已有窗口或框架的名称,那么就会在具有该名称的窗口或者框架中加载,而不会重新打开。若第二个参数并不是已经存在的窗口或框架,那么该方法就会根据第三个参数的字符串创建一个新窗口或新标签。第四个参数只在不打开新窗口的情况下使用。
  • 检测弹出窗口是否被屏蔽 (分为浏览器内置的屏蔽程序阻止弹窗 和 浏览器扩展或其他程序阻止弹窗)若是浏览器内置的屏蔽程序阻止弹框,只需根据window.open返回的引用是否为null或者undefined即可检测,若是其他程序阻止的,window.open则会报错,此时用try catch捕获。


间歇调用和超时调用

  • setTimeout(执行代码,等待时间)
  • setInterval(执行代码,间隔时间)
  • 两者都返回调用ID,可以通过clearTimeout()与clearInterval()取消调用

系统对话框

  • alert()
  • confirm()
  • prompt()
5.location对象 -- 很特别,它既是window对象的属性,又是document对象的属性。也就是说,window.location和document.location引用的是同一个对象。location对象的用处不只表现在它保存着当前文档的信息,还表现在它将URL解析为独立的片段,让开发人员可以通过不同的属性访问这些片段。
6.navigatord对象 -- 包含有关浏览器的信息
下面列举了一些navigator对象的属性

  • 检测插件

对于非IE浏览器,可以使用plugins数组,数组的每一项都包含下列属性

name:插件的名字

description:插件的描述

filename:插件的文件名

length:插件所处理的MIME类型数量



原创粉丝点击