使用带引号的字符串的W3C验证错误:'文档类型不允许元素'html“here”

时间:2015-04-13 16:02:50

标签: html w3c-validation

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

  

错误第63行,第39栏:文档类型不允许元素“html”在这里

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

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

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

1 个答案:

答案 0 :(得分:0)

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

因此,据推测,您正在编写XHTML。

我的第一条建议是:不要。 XHTML通常比它的价值更麻烦。 使用HTML 5而不是无效


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

与HTML的区别:Script and Style elements

  

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

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

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

  

如果您的样式表使用<&]]>,请使用外部样式表或   > --如果您的脚本使用<&]]>--,请使用外部脚本。请注意,XML解析器可以以静默方式删除   评论。因此,“隐藏”脚本的历史实践   “注释”中的样式表使文档向后   兼容性可能无法在基于XML的用户代理中按预期工作。