HTML验证错误

时间:2012-08-08 16:17:11

标签: html xhtml

我正在尝试使用w3c-validator来验证我的代码 编码: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列:文档类型不允许元素&#34; body&#34;这里    ✉上面提到的元素是在它所在的上下文中找到的   不允许。这可能意味着您有错误的嵌套元素    - 例如&#34; style&#34; &#34; body&#34;中的元素部分而不是内部&#34;头部&#34; - 或两个重叠的元素(不允许)。一   导致此错误的常见原因是在HTML中使用XHTML语法   文档。由于HTML隐式封闭元素的规则,这个   错误可以创建级联效果。例如,使用XHTML&#39; s   &#34;自闭合&#34;标签为&#34; meta&#34;和&#34;链接&#34;在&#34;头部&#34;一节   HTML文档可能会导致解析器推断出&#34; head&#34;   部分和&#34;身体的开头&#34;部分(其中&#34;链接&#34;和   &#34;元&#34;不允许;因此报告的错误)。

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

1 个答案:

答案 0 :(得分:3)

你的doctype似乎在告诉我它是一个框架集。这会使身体标签变得非法,而您希望改为使用框架集。有一段时间以来我已经完成了任何帧,所以我可能会错误地记住它。

如果不明显,解决方案就是找到正确的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似乎有一个可供选择的列表(也是我复制上述内容的地方)。