高等学校计算机应用人才培养系列教材6.1JavaScript程序设计高等学校计算机应用人才培养系列教材6.2第六章窗口和框架高等学校计算机应用人才培养系列教材6.3本章结构JavaScript对象模型window对象frame对象location对象history对象高等学校计算机应用人才培养系列教材6.4JavaScript对象模型浏览器对象的层次结构浏览器对象模型定义了浏览器对象的组成和相互关系,描述了浏览器对象的层次结构,是Web页面中内置对象的组织形式。浏览器对象不需要在程序中创建,它们会在Web浏览器打开网页的时候被自动创建。浏览器对象模型中的每个对象都含有若干属性和方法,使用这些属性和方法可以操作Web浏览器窗口的不同功能,控制和访问窗口中框架和HTML页面的不同内容。浏览器对象模型和浏览器的种类有关,不同浏览器可能包含不同的浏览器对象及其属性和方法,而且彼此互不兼容。JavaScript和浏览器对象模型是两个不同的概念,通过JavaScript并不能影响和改变浏览器对象的核心内容;另外,浏览器对象不是JavaScript专用的,其他的脚本语言(比如VBScript)也可以使用浏览器对象。高等学校计算机应用人才培养系列教材6.5JavaScript对象模型浏览器对象模型高等学校计算机应用人才培养系列教材6.6JavaScript对象模型浏览器对象模型中的层次窗口(window)对象是浏览器对象模型中定义的其他所有对象的父类。它代表浏览器窗口中显示HTML页面内容的区域。使用当前窗口的属性和方法时,并不需要去识别,因为浏览器默认的是当前窗口。文档(document)对象代表装载到窗口中的HTML页面。它包含了其他一些常用的对象,例如form、link、image、layer等。表单(form)对象由许多其他重要的对象组成,例如text、button、radio、checkbox、select等,这些对象通常在Web页面中使用,是用户和页面动态交互的关键。浏览器对象的值可以通过浏览器对象模型层次来获得,即使用JavaScript,按照从顶层到底层的路径顺序,便可以设置或者访问某个属性的值。高等学校计算机应用人才培养系列教材6.7JavaScript对象模型浏览器对象的属性和方法浏览器对象模型中的对象通常都含有很多属性,通过这些属性可以表现对象的特征。不同浏览器对象的属性不一定相同,不过大部分浏览器对象都有“name”和“value”这两个属性,访问对象属性的方法如下:objectName.propertyNameobjectName表示对象名称,propertyName表示该对象的属性名称。方法是浏览器对象的固有函数,用来对特定对象执行某个操作。每个对象都有自己的方法集,方法的访问语法如下:objectName.methodName(parameterList)objectName为包含所调用代码的对象名称,methodName为调用方法,parameterList为该方法的参数清单。高等学校计算机应用人才培养系列教材6.8window对象window对象的部分属性closed:布尔值,用于判断窗口是否被关闭。defaultStatus:字符串,指定了默认显示在浏览器状态栏中的文本内容。document:对document对象的应用,包含了窗口中document对象的信息。frames[]:包含了所有在本窗口中的frame对象。history:对history对象的引用,表示用户浏览器窗口的历史信息。location:对locaton对象的引用,改变这个属性将导致浏览器加载一个新的文档。parent:如果当前的窗口是一个框架,那么该属性就是对窗口中包含这个框架的框架的引用。。高等学校计算机应用人才培养系列教材6.9window对象window对象的部分方法alert(message):该方法可以显示一个简单的信息对话框,带有一个确定(OK)按钮,参数message为要在对话框中显示的信息。confirm(question):该方法可以显示一个确定对话框,带有确定(OK)和取消(Cancel)按钮,参数question为要在对话框中显示的信息。prompt():该方法显示一个对话框,提示用户输入信息。open(url,name,features,replace):该方法用于打开一个新窗口。url指定了要在新窗口中显示的文档的URL;name指定了新窗口的名字;features指定了新窗口要显示的标准浏览器的特性;replace指定是要在窗口的浏览历史中给装载的新页面的url创建一个新条目,还是用它替换掉浏览历史中的当前条目。高等学校计算机应用人才培养系列教材6.10frame对象创建框架框架是Web浏览器窗口中独立的、可以滚动的分块区域,每个框架都可以被看成是独立的窗口,包含自己的URL。浏览器包含一个顶层的window对象,而每个框架也都有自己的window对象,框架的window对象由浏览器顶层window对象继承而来。虽然JavaScript可以用来操作框架,但是框架却是由HTML标记语言创建,其语法规则如下:framesetrows=”percentorpixels”cols=”percentorpixels”[onLoad=”handlecode”][onUnload=”handlecode”]framesrc=”URL”name=”frameName”[frameset……[frame…………..]/frameset]/frameset高等学校计算机应用人才培养系列教材6.11location对象概述location对象用来表示浏览器窗口中加载的当前文档的URL,该对象的属性说明了URL中的各个部分。一旦location对象的属性发生变化,就相当于生成了一个新的URL,浏览器便会尝试打开新的URL。虽然可以通过改变location对象的任何属性加载新的页面,但是一般不建议这么做,正确的方法是修改location对象的herf属性,将其设置为一个完整URL地址,从而实现加载新页面的功能。location对象和document对象的location属性是不同的,document对象的location属性是一个只读字符串,不具备location对象的任何特性,所以也不能通过修改document对象的location属性实现重新加载页面的功能。高等学校计算机应用人才培养系列教材6.12location对象location对象的属性hash:这个属性表示了URL应用的对象中的锚的名字。host:这个属性表示了URL中的主机名和端口号的组合。hostname:这个属性表示了URL中的主机名。href:这个属性表示了完整的URL地址。pathname:这个属性表示了URL中的路径部分。port:这个属性表示了URL中的端口部分。protocol:这个属性表示了URL中的协议部分。search:这个属性表示了URL中的查询部分。高等学校计算机应用人才培养系列教材6.13location对象location对象的方法reload([force]):该方法从缓存或者服务器中再次把当前文档加载进来。force是一个布尔型的参数,如果将其设置为true,那么就使当前页面无条件的从所处的服务器上重新加载;如果将参数设置为false,或者忽略该参数,那么只有当从上次加载完毕后,文档被改变时才会重新加载。replace(url):该方法用一个新的文档替换当前的文档。调用该方法,将用该方法中参数指定的URL替换当前浏览器中的文档,而不是在历史列表中创建一个新的条目。如果使用replace()方法加载一个新的页面后,浏览器的“后退”按钮将无法返回到原来的页面,而通过改变location对象的属性来加载一个新的页面时便可以做到这一点。高等学校计算机应用人才培养系列教材6.14history对象history对象的属性history对象是一个数组,其中的元素存储了浏览历史中的URL,用来维护在Web浏览器的当前会话内所有的曾经打开的历史文件列表。其属性主要包括:current:指定了当前文档的URL。length:表示history对象中保存的URL的个数。next:指定了在历史列表中位于当前文档之后的文档的URL。previous:指定了在历史列表中位于当前文档之前的文档的URL。注意,用户浏览网页的历史信息属于个人隐私,所以对history对象的使用有严格限制。在Navigator4中及以后版本中,有署名的脚本可以访问history对象数组的元素;而在Navigator以前版本以及InternetExplorer中,history对象数组的元素是无法访问的。高等学校计算机应用人才培养系列教材6.15history对象history对象的方法back():这个方法可以使浏览器向后转移到以前已经访问过的URL,该方法的执行效果等同于在浏览器上点击“后退”按钮。forward():这个方法可以使浏览器向前转移到以前已经访问过的URL,该方法的执行效果等同于在浏览器上点击“前进”按钮。go():这个方法可以使浏览器转移到以前访问过的URL,该方法有两种形式,分别为go(position)和go(target)。在第一种形式go(position)中,参数positon是一个整形参数,指定的是在history对象支持的历史列表中的位置的距离,该方法会使浏览器访问这个指定距离处的URL,参数值为正数,浏览器就会在历史列表中向前移动,参数值为负数,浏览器就会在历史列表中向后移动。在第二种形式go(target)中,参数target是一个字符串,该方法会使得浏览器再次访问第一个含有这个指定的字符串的URL。高等学校计算机应用人才培养系列教材6.16本章小结客户端浏览器中固有的、预定义的内置对象被统称为浏览器对象。window对象位于浏览器对象模型中的顶层,是其他对象的父类。在应用中,只要浏览器一打开,无论是否存在页面,都将创建window对象。框架是Web浏览器窗口中独立的、可以滚动的分块区域,每个框架都可以被看成是独立的窗口,包含自己的window对象。location对象用来表示浏览器窗口中加载的当前文档的URL,该对象的属性说明了URL中的各个部分。history对象是一个数组,其中的元素存储了浏览历史中的URL,用来维护在Web浏览器的当前会话内所有的曾经打开的历史文件列表。screen对象用于获取用户屏幕设置的相关信息,主要包括显示尺寸和可用的颜色的数量的信息。高等学校计算机应用人才培养系列教材6.17思考题什么是浏览器对象?浏览器对象模型的层次结构是什么?使用window对象的open方法打开新窗体时,如何控制窗体外观?在实际应用中如何使用location对象获取URL信息?在实际应用中如何使用history对象访问历史纪录?在实际应用中如何使用navigator对象获取浏览器信息?