根据W3C,头标记中是否允许使用iframe标记?

时间:2014-11-11 09:16:51

标签: html iframe w3c

我正在与两位开发人员讨论如何将<iframe>放在HTML页面的<head>中。这是TAG所必需的。

根据开发人员1,标记可能不会放在标题中,因为标记会创建iframe来加载另一个标记,而iframe是流内容,必须根据W3C规范放在<body>中HTML 5.1。

开发人员2表示在允许嵌入内容的任何环境中都允许使用iframe。一些嵌入的内容也可以是交互式内容(例如音频标签),并且这些内容必须在体内;但是,我们添加的iframe没有内容且不具有交互性,因此根据他对规范的理解,它可能会出现在文档的任何位置。

有关W3C规范的更多信息,请访问:http://www.w3.org/TR/html5/dom.html#kinds-of-content

W3C验证器不会在头部发出iframe错误或警告,但这对于开发人员1来说还不够。

问题很简单:如果我们将iframe放在头部没有内容,这会违反规范吗,或者说规范是否像开发人员2所说的那样留下了解释空间?

1 个答案:

答案 0 :(得分:10)

  

根据开发人员1,标签可能不会放在标题中,因为标签会创建一个IFRAME来加载另一个标签,而IFRAME是必须根据HTML 5.1的W3C规范放在BODY中的流内容

这是正确的

  

开发人员2表示允许在允许嵌入式内容的任何环境中使用IFRAME。

正确

  

某些嵌入内容也可能是互动内容(例如:音频标签),而这些内容必须位于BODY中,

正确

  

但是,我们添加的IFRAME没有内容

不正确的。

iframe元素的子节点为不支持框架的浏览器提供替代内容。这是内容。

iframe本身是一个被替换的元素。它在页面上生成可视UI以显示另一个文档。这是内容。

  

并且不是互动的,

specification explicitly lists it as being interactive content

  

基于他对规范的理解,它可能会出现在文档的任何地方。

不正确的。

  

W3C验证器不会抛出错误或警告,但这对于开发人员1来说还不够。

不允许在头部中使用的iframe将隐式结束head元素并启动body元素,因此如果您使用仅在头部或显式头端允许的内容,则只会出现错误标签或正文开始标记。

  

如果我们放置没有内容的IFRAME

没有这样的事情

  HEAD中的

将违反规范

将任何iframe放入头部将违反规范