1

我正在处理一个页面,并注意到他们有一个绑定到document(例如document.formNameId)的元素。我在想它一定是 JavaScript 并且找不到设置它的地方,我删除了页面上的所有 JavaScript。我仍然找到了文档上设置的元素名称。

玩过之后,似乎form将具有 name 属性集的元素添加到document. 是否还有其他默认绑定的元素?

编辑:

经过进一步检查,您甚至可以通过相同的 API 在该表单元素中找到元素。

因此,如果我做这样的事情来获取输入元素:document.formName.inputName

看看这个例子。

4

2 回答 2

2

是的,这些被称为(在 HTML5 中)命名属性

规范中的描述说:

Document 接口支持命名属性。任何时候支持的属性名称由所有小程序、暴露的嵌入表单iframeimg和暴露对象的名称内容属性的值组成。Document 中具有非空 name 内容属性的元素,以及 Document 中所有具有非空 id 内容属性的小程序和暴露对象元素的 id 内容属性的值,以及 id 内容属性的值Document 中同时具有非空 name 内容属性和非空 id 内容属性的所有 img 元素。受支持的属性名称必须按树顺序排列,忽略后面的重复项,当同一元素同时贡献两者时,来自 id 属性的值位于来自 name 属性的值之前。

所以这些发生在许多元素上。在上面的链接中也有描述这些属性的值是如何确定的,包括对于表单来说,它是如何成为表单上的控件列表的。

于 2013-08-10T16:29:37.657 回答
0

https://developer.mozilla.org/en-US/docs/Web/API/document很好地概述了document对象的所有属性和方法。

[过时:document.formNameId那里丢失了,我在这个网站上找不到它,所以它似乎不是默认属性,而是由脚本添加的(谷歌快速搜索“document.formnameid”只列出了这个stackoverflow问题)。]

于 2013-08-10T15:35:10.113 回答