【问题标题】:W3C validation error for use of <html> in quoted string: 'document type does not allow element "html" here'在引用的字符串中使用 <html> 的 W3C 验证错误:'文档类型不允许此处的元素“html”'
【发布时间】:2015-06-19 00:49:45
【问题描述】:

我在引用字符串中使用 HTML 时收到以下错误:

错误第 63 行,第 39 列:文档类型在此处不允许元素“html”

mywindow.document.write("<html><head><title>mydiv</title>");

上面提到的元素是在不允许的上下文中找到的。这可能意味着您有错误的嵌套元素——例如“body”部分中的“style”元素而不是“head”内部——或者两个重叠的元素(这是不允许的)。

是我做错了什么还是 W3C 验证器给出了不好的结果?

【问题讨论】:

  • 据我所知,您只能通过Javascript编写正文内容。不是整个 html 文档。
  • 嗨,你试过用简单的引号吗:mywindow.document.write(' mydiv'); @Wavemaster:如果您正在编写当前页面,是的。但如果你正在写一个弹出窗口,我认为应该被授权
  • @Wavemaster — 正在将新文档写入新窗口
  • @lookfire — 不会有任何区别
  • 我发现我的问题中不能将 放在 html 周围,这很有趣。

标签: html w3c-validation


【解决方案1】:

您不会在 HTML 文档中遇到该错误。

因此,您可能正在编写 XHTML。

我的第一条建议是:不要。 XHTML 通常麻烦多于其价值。 改用 HTML 5,这不会无效


如果您需要使用 XHTML,请参阅规范:

与 HTML 的区别:Script and Style elements

在 XHTML 中,脚本和样式元素被声明为具有#PCDATA 内容。因此,&amp;lt;&amp;amp; 将被视为标记的开始, &amp;lt;&amp;amp; 等实体将被识别为实体 XML 处理器分别对&amp;lt;&amp;amp; 的引用。包装 CDATA 标记部分中的脚本或样式元素的内容 避免了这些实体的扩展。

<script type="text/javascript">
<![CDATA[
... unescaped script content ...
]]>
</script>

HTML 兼容性指南:Embedded Style Sheets and Scripts:

如果您的样式表使用 &amp;lt;&amp;amp;]]&gt;&gt; --如果您的脚本使用 &amp;lt;&amp;amp;]]&gt;--,请使用外部脚本。 请注意,允许 XML 解析器静默删除 厘米。因此,“隐藏”文字的历史实践和 “cmets”中的样式表使文档向后 compatible 在基于 XML 的用户代理中可能无法按预期工作。

【讨论】:

  • 谢谢。两种解决方案都可以纠正 W3C 错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多