图像标记(<img src="" alt="" />
),换行符标记(<br />
)或水平规则标记(<hr />
)在末尾具有斜杠以将自身标记为自闭标记。但是,当这些对象是由javascript创建的,并且我查看源代码时,它们没有斜杠,因此W3C标准使它们无效。当对象(例如img标签)由javascript创建时,它没有结束标签。我如何使W3C有效?
我该如何克服这个问题?
(我使用javascript原型库)
图像标记(<img src="" alt="" />
),换行符标记(<br />
)或水平规则标记(<hr />
)在末尾具有斜杠以将自身标记为自闭标记。但是,当这些对象是由javascript创建的,并且我查看源代码时,它们没有斜杠,因此W3C标准使它们无效。当对象(例如img标签)由javascript创建时,它没有结束标签。我如何使W3C有效?
我该如何克服这个问题?
(我使用javascript原型库)
您如何看待'源头'? JavaScript创建的元素不会出现在“查看源代码”中。你在说什么innerHTML
?
如果是这样,那么你所得到的是浏览器在文档中DOM节点的序列化。在浏览器中,页面的HTML标记不是文档状态的权威存储区。该文件被存储为Node
对象的负载;当这些对象被序列化回标记时,该标记可能看起来不像被解析以获取文档的原始HTML页面标记。
所以不管是哪个的:
<img src="x" alt="y"/>
<img src="x" alt="y">
<img alt = "y" src="x">
img= document.createElement('img'); img.src= 'x'; img.alt= 'y';
用于创建一个HTMLImageElement
节点,当你连载它使用innerHTML
浏览器通常会产生相同的HTML标记。
如果浏览器是原生XML模式(即因为页面是担任application/xhtml+html
),那么innerHTML
价值肯定会包含类似<img/>
自闭的语法。 (在某些浏览器中,您也可能会看到像名称空间这样的其他XML内容)。
但是,如果您今天更有可能在媒体类型text/html
下为“HTML兼容的XHTML”服务,实际上完全使用XHTML,所以当你访问innerHTML
时你会得到老派的HTML,而你不会看到自闭的/>
表单。
它从来没有重要!,我用来确认W3C的每个标准,但它变成了一个愚蠢的东西! 只要符合safe
其中的一个,它们允许您对跨浏览器进行编码,而且您的案例绝对不是其中之一,因为它绝不是问题并且不会造成任何问题。
重要吗?你为什么需要这种行为? – 2010-09-25 23:23:56
准确地如何以及何时创建标签? – Guffa 2010-09-25 23:26:08
W3C标准仅适用于静态html,您不需要为dhtml关闭标签。 W3c验证器不解析你的动态html。 – jcubic 2010-09-25 23:33:20