浏览器载入目标文档后,将根据文档标记的类型产生该类型的对象数组,并以标记元素载入的时间顺序进行数组下标分配。
考察如下获取Document 对象信息的代码,其中框架集文档“main.html”代码如下:[code]
Sample Page! [/code]该框架集文档包含右框架文档“target.html”和左框架文档“leftmain.html”,其中前者为普通测试文档,而后者为包含链接、图片、插件、表单等HTML 页面可见元素的文档,其代码如下:[code] Sample Page!获取文档Document 对象信息
链接 : 超级链接一 超级链接二 超级链接三 |
图片 : |
音乐 : |
多媒体 : |
表单一 :
单选框 : 是 否 下拉框 : 黑色 绿色 |
表单二 :
复选框 : 文本框 : |
鼠标单击上述原始页面中的“获取信息”按钮后,触发GetInfo()函数收集当前文档对应的Document 对象相关信息,并使用警告框输出。
由上图可以看出,浏览器载入文档后,根据 HTML 元素载入的顺序和类型生成对象数组并按顺序分配数组下标以便JavaScript 脚本对各元素对象进行访问。
对象数组生成后,可根据数组中各元素的相对位置或其标识符(name 属性等)来引用。
如在上述实例中,表单MyForm3 载入时顺序为3,则可通过下面的方式引用该表单的name 属性:document.forms["MyForm3"].name
document.forms[2].name
当然,也可使用如下方式直接进行访问:document.all.MyForm3.name
document.getElementByName("MyForm3")
其中,getElementByName()为W3C DOM Level 1 中定义的标准方法,目前通用的浏览器版本都基本实现了W3C DOM Level 1 规范。
同样,如果设置了标记元素的id 属性,也可使用getElementById()方法来代替该方法。
综上所述,Document 对象一般的处理步骤如下:
获取文档的指定对象类型的目标数组,如 images、forms 数组等;
使用目标数组的长度为参数遍历数组,根据提供的属性值检索出目标在对象数组中的位置信息;
使用目标对象的位置信息访问该对象的属性和方法。
在 W3C 新版本中定义了更多访问Document 对象中标记元素对象的通用方法,同时浏览器版本的更新也对其进行了大量的扩展。