gpt4 book ai didi

javascript - 当对象(例如 img 标签)由 javascript 创建时,它没有结束标签。我如何使 W3C 有效?

转载 作者:太空宇宙 更新时间:2023-11-04 14:08:14 25 4
gpt4 key购买 nike

图像标签 ( <img src="" alt="" /> )、换行标签 ( <br /> ) 或水平标尺标签 ( <hr /> ) 末尾有斜线以表明其自身为自闭合标签。但是,当这些对象由 javascript 创建时,我查看了源代码,发现它们没有斜杠,这使得它们按照 W3C 标准无效。

我怎样才能克服这个问题?

(我使用javascript原型(prototype)库)

最佳答案

您如何看待“来源”? JavaScript 创建的元素不会出现在“查看源代码”中。你在说 innerHTML

如果是这样,那么您得到的是 Web 浏览器对文档中 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 标记。

如果浏览器处于 native XML 模式(即因为页面作为 application/xhtml+html 提供),则 innerHTML value 肯定会包含自关闭语法,如 <img/> . (在某些浏览器中,您可能还会看到其他 XML 内容,例如 namespace 。)

但是,如果今天更有可能,您在媒体类型 text/html 下提供“HTML 兼容的 XHTML”服务,浏览器实际上根本没有使用 XHTML,因此当您访问 innerHTML 时,您会得到老派的 HTML。你不会看到自动关闭的 />形式。

关于javascript - 当对象(例如 img 标签)由 javascript 创建时,它没有结束标签。我如何使 W3C 有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3795961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com