BOM——浏览器对象模型(Browser_Object_Model)

  • 格式:docx
  • 大小:145.44 KB
  • 文档页数:12

BO ■—浏览器对象模型(BrowserObject Model)什么是BOMI --- 模型是所研究的系统、过程、事物或概念的一种表达形式!•BOh是Browser Object Model的缩写,简称浏览器对象模型•BOM提供了独立于内容而与浏览器窗口进行交互的对象•由于BOMfc要用于管理窗口与窗口之间的通讯,因此其核心对象是window * BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性« BOM缺乏标准,JavaScript语法的标准化组织是ECMADOM勺标准化组织是W3(WHATWG,WebHypertextApplicati on Tech nologyWorki ngGroup ----- 网页超文本应用程序技术工作组目前正在努力促进BOMS标准化)* BOMR初是Netscape浏览器标准的一部分基本的BOM体系结构图能利用BOM做什么?BOh提供了一些访问窗口对象的一些方法,我们可以用它来移动窗口位置,改变窗口大小,打开新窗口和关闭窗口,弹出对话框,进行导航以及获取客户的一些信息如:浏览器品牌版本,屏幕分辨率。

但BOMR强大的功能是它提供了一个访问HTML页面的一入口-- document对象,以使得我们可以通过这个入口来使用DOM勺强大功能!!!window对象是BOM的顶层(核心)对象,所有对象都是通过它延伸出来的,也可以称为window的子对象。

由于window是顶层对象,因此调用它的子对象时可以不显示的指明window对象,例如下面两行代码是一样的:window -- window对象是BOM中所有对象的核心。

window对象表示整个浏览器窗口,但不必表示其中包含的内容。

此外,wi ndow还可用于移动或调整它表示的浏览器的大小,或者对它产生其他影响。

win dow子对象* docume nt 对象* frames 对象« history 对象* locatio n 对象* n avigator 对象« scree n 对象wi ndow对象关系属性•pare nt :如果当前窗口为frame,指向包含该frame的窗口的frame (frame)* self :指向当前的window对象,与window 同意。

(window对象)* top :如果当前窗口为frame,指向包含该frame的top-level 的window 对象•window :指向当前的window对象,与self 同意。

・opener :当窗口是用javascript 打开时,指向打开它的那人窗口 (开启者) win dow对象定位属性« IE 提供了window.screenLeft 和window.screenTop 对象来判断窗口的位置,但未提供任何判断窗口大小的方法。

用offsetHeight 属性可以获取视口的大小(显示HTML页的区域),但它们不是标准属性。

* Mozilla 提供window.screenX 和window.screenY 属性判断窗口的位置。

它还提供了window.innerWidth 和window.innerHeight 属性来判断视口的大小,window.outerWidth和window.outerHeight 属性判断浏览器窗口自身的大小。

wi ndow对象的方法窗体控制moveBy(x,y) ------ 从当前位置水平移动窗体x个像素,垂直移动窗体y个像素,x为负数,将向左移动窗体,y为负数,将向上移动窗体moveTo(x,y)----------------------- 移动窗体左上角到相对于屏幕左上角的(x,y)点,当使用负数做为参数时会吧窗体移出屏幕的可视区域resizeBy(w,h)――相对窗体当前的大小,宽度调整w个像素,高度调整h个像素。

如果参数为负值,将缩小窗体,反之扩大窗体resizeTo(w,h) ------- 把窗体宽度调整为w个像素,高度调整为h个像素窗体滚动轴控制scrollTo(x,y)――在窗体中如果有滚动条,将横向滚动条移动到相对于窗体宽度为x个像素的位置,将纵向滚动条移动到相对于窗体高度为y个像素的位置scrollBy(x,y) ――如果有滚动条,将横向滚动条移动到相对于当前横向滚动条的x个像素的位置(就是向左移动x像素),将纵向滚动条移动到相对于当前纵向滚动条高度为y个像素的位置(就是向下移动y像素)窗体焦点控制focus() ------- 使窗体或控件获取焦点blur() -------- 与focus函数相反,使窗体或控件失去焦点新建窗体open() ------ 打开(弹出)一个新的窗体close() ------- 关闭窗体opener属性——新建窗体中对父窗体的引用,中文"开启者"的意思window.open方法语法open方法参数说明* url -- 要载入窗体的URL・name--新建窗体的名称(目标,将在a标签的target属性中用到,当与已有窗体名称相同时将覆盖窗体内容).open函数默认的打开窗体的方式为target的_blank弹出方式,因此页面都将以弹出的方式打开* features -- 代表窗体特性的字符串,字符串中每个特性使用逗号分隔* replace -- 一个布尔值,说明新载入的页面是否替换当前载入的页面,此参数通常不用指定open函数features参数说明,如果不使用第三个参数,将打开一个新的普通窗口open方法返回值为一个新窗体的win dow对象的引用对话框alert(str) ---------- 弹出消息对话框(对话框中有一个“确定”按钮)con firm(str) -------- 弹出消息对话框(对话框中包含一个“确定”按钮与“取消”按钮)prompt(str,defaultValue) ------------ 弹出消息对话框(对话框中包含一个“确定”按钮、“取消”按钮与一个文本输入框),由于各个浏览器实现的不同,若没有第二个参数(文本框中的默认值)时也最好提供一个空字符串状态栏window.defaultStatus 属性 ----- 改变浏览器状态栏的默认显示(当状态栏没有其它显示时),浏览器底部的区域称为状态栏,用于向用户显示信息win dow.status 属性---- 临时改变浏览器状态栏的显示时间等待与间隔函数setTimeout() ------- 暂停指定的毫秒数后执行指定的代码clearTimeout() -------- 取消指定的setTimeout函数将要执行的代码set In terval() --------- 间隔指定的毫秒数不停地执行指定的代码clearlnterval() ----------- 取消指定的setlnterval 函数将要执行的代码setTimeout与setInterval 方法有两个参数,第一个参数可以为字符串形式的代码,也可以是函数引用,第二个参数为间隔毫秒数,它们的返回是一个可用于对应clear方法的数字IDvar tid = setTimeout("alert('1')",1000); alert(tid);clearTimeout(tid);History对象,在浏览器历史记录中导航History对象的属性:length 返回浏览器历史列表中的URL数量History 对象的方法* back()加载history 列表中的前一个URL* forward() 加载history 列表中的下一个URL* go(num)加载history 列表中的某个具体页面Locati on 对象Locati on 对象的属性« hash设置或返回从井号(#)开始的URL (锚)« host设置或返回主机名和当前URL的端口号* host name设置或返回当前URL的主机名« href设置或返回完整的URL* path name设置或返回当前URL的路径部分« port设置或返回当前URL的端口号« protocol设置或返回当前URL的协议« search设置或返回从问号(?)开始的URL (查询部分)Locati on对象的方法* assign()加载新的文档,这与直接将一个URL赋值给Location对象的href属性效果是一样的* reload()重新加载当前文档,如果该方法没有规定参数,或者参数是false,它就会用HTTP头If-Modified-Sinee 来检测服务器上的文档是否已改变。

如果文档已改变,reload() 会再次下载该文档。

如果文档未改变,则该方法将从缓存中装载文档。

这与用户单击浏览器的刷新按钮的效果是完全一样的。

如果把该方法的参数设置为true,那么无论文档的最后修改日期是什么,它都会绕过缓存,从服务器上重新下载该文档。

这与用户在单击浏览器的刷新按钮时按住Shift 健的效果是完全一样。

* replace() 用新的文档替换当前文档,replace() 方法不会在History 对象中生成一个新的纪录。

当使用该方法时,新的URL将覆盖History对象中的当前纪录。

Navigator 对象Navigator对象的属性* appCodeName返回浏览器的代码名* appName返回浏览器的名称* appVersion返回浏览器的平台和版本信息* browserLanguage返回当前浏览器的语言* cookieEnabled返回指明浏览器中是否启用cookie 的布尔值* cpuClass返回浏览器系统的CPU等级* on Li ne返回指明系统是否处于脱机模式的布尔值* platform返回运行浏览器的操作系统平台* systemLa nguage返回OS使用的默认语言* userAge nt返回由客户机发送服务器的user-age nt 头部的值* userLanguage返回OS的自然语言设置框架与多窗口通信子窗口与父窗口只有自身和使用window.open方法打开的窗口和才能被JavaScript访问,window.open方法打开的窗口通过window.opener属性来访问父窗口。

而在opener窗口中,可以通过window.open方法的返回值来访问打开的窗口!框架win dow.frames 集合:在框架集或包含iframe标签的页面中,frames集合包含了对有框架中窗口的引用在框架集中还可以使用ID来获取子窗口的引用子窗口访问父窗口--- window对象的pare nt属性子窗口访问顶层--- window对象的top属性浏览器检测市场上的浏览器种类多的不计其数,它们的解释引擎各不相同,期待所有浏览器都一致的支持JavaScript,CSS,DOM,那要等到不知什么时候,然而开发者不能干等着那天。