0

我正在尝试使用w3c-validator
Encoding: utf-8
Doctype:XHTML 1.0 Frameset验证我的代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
  <head>  
    <title>Openfire Archived IM content Search</title>  
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />  
  </head>  
  <body>  
    <p>  
        <!--The following javascript function re-directis the user to the same page-->
        <script type="text/javascript">  
        function startover(){  
            window.location="http://localhost/openfireIMsearch/index.php"  
        }  
        </script>

<!--html form for start-over button. The javascript function startover() is called when the user clicks this button-->
        <form method="get" action= "index.php" name = "re-login">
            <input type = "button" value ="Start Over" onclick = "startover()" />
            <input type = "hidden" name = "re-login-hidden" value ="re-login-on" />
        </form>  
    </p>
  </body>
</html>

我收到以下我不知道的错误:

第 7 行,第 6 列:文档类型在此处不允许元素“body” ✉ 上面提到的元素是在不允许的上下文中找到的。这可能意味着您有错误的嵌套元素——例如“body”部分中的“style”元素而不是“head”内部——或者两个重叠的元素(这是不允许的)。此错误的一个常见原因是在 HTML 文档中使用了 XHTML 语法。由于 HTML 的隐式关闭元素规则,此错误可能会产生级联效果。例如,在 HTML 文档的“head”部分中为“meta”和“link”使用 XHTML 的“self-closure”标签可能会导致解析器推断“head”部分的结尾和“body”部分的开头“部分(其中”

错误消息似乎表明一个原因可能是我使用了元标记。但是 doctype 清楚地表明该文档是 XHTML 而不是 HTML。我在这里不知所措。有人能解释一下吗?谢谢!

4

1 回答 1

3

您的 doctype 似乎告诉我它是一个框架集。这会使正文标签非法,而您会期望有一个框架集。自从我做了任何框架以来已经有一段时间了,所以我可能记错了。

如果它不明显,解决方案是找到正确的文档类型。就像是:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

http://www.w3.org/QA/2002/04/valid-dtd-list.html似乎有一个可供选择的列表(并且是我从中复制上述内容的地方)。

于 2012-08-08T16:19:13.220 回答