在 Firefox 和 Safari 上,以下代码仅显示第一个 iframe
<iframe src="http://www.bing.com"/>
<iframe src="http://www.tsr.ch"/>
而添加结束标记可以解决问题
<iframe src="http://www.bing.com"></iframe>
<iframe src="http://www.tsr.ch"></iframe>
我不明白为什么它不起作用。当使用 DOMParser 解析第二个示例时,它无论如何都会转换为自关闭 iframe。
最佳答案
因为 iframe
元素不是自闭合元素。您使用的 Firefox 和 Safari 版本正在处理 />
最后就像>
并假设它之后的所有内容都包含在 iframe
中.
如果我们试图通过 W3C's validator 传递您提供的代码我们将看到以下错误:
Error: Self-closing syntax (
/>
) used on a non-void HTML element. Ignoring the slash and treating as a start tag.<iframe src="http://www.bing.com"/>
Error: End of file seen when expecting text or an end tag.
</html>
Error: Unclosed element
iframe
.<iframe src="http://www.bing.com"/>
如果您使用浏览器的元素检查器检查您的文档,您会看到发生了什么。
我正在使用的 Chrome 会转换无效的 <iframe ... />
至 <iframe ...></iframe>
:
关于html - 为什么自关闭 iframe 标记会阻止显示更多 DOM 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27545757/