JavaScript 顶级对象之间的关系

我们来模拟浏览器载入某标准HTML 的过程来阐述window、frames、location 等几种常见的顶级对象之间的关系。

首先参考如下包含框架集的标准HTML 文档:[code]

[/code]将上述代码保存为Sample.html,鼠标双击,系统调用默认的浏览器,生成window 对象,打开Sample.html 文档后,生成screen、navigator、location、history、frames[]和document 等对象。

window 对象包含当前浏览器窗口中的所有对象,为对象访问过程忠默认的顶级对象,如引用该对象的alert( )方法,可将window.alert(msg)直接改写为alert(msg),同样window.document.forms[1]可改写为document.forms[1];

screen 对象包含当前浏览器运行的物理环境信息,如当前屏幕分辨率;

navigator 对象包含当前浏览器的相关信息,如浏览器版本等;

location 对象以URL 形式保存正在浏览的文档相关信息,如路径等;

history 对象包含浏览器当前窗口的访问历史列表,如单击链接进入新页面,则原始页面地址列入当前窗口的访问历史列表中;

frames对象包含当前Window 页面中的框架数组成员,如实例中的两个框架,每个框架都包含一个独立的document 对象;

document 对象包含HTML 文档中的HTML 标记和构成文档内容的文本的对象,在每个单独保存的HTML 文档中都直接包含一个document 对象。

由上面的分析,可看出从浏览器打开文档至关闭文档期间,screen 和navigator 对象不变(用户不改变其硬件和软件设置),且与文档无关;location 对象代表当前文档位置的相关信息,与文档地址(相对地址或绝对位置)及访问方法相关;history 对象则是当前文档页面的访问列表,与文档中链接及页面跳转情况有关;frames和document 对象则是浏览器载入时根据文档结构生成的对象,决定于文档。

理解这几个顶级对象的关系有助于深入了解浏览器解释运行HTML 文档过程中各对象的生成步骤和相互之间如何影响彼此。