我正在尝试使用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。我在这里不知所措。有人可以解释一下吗?谢谢!
答案 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似乎有一个可供选择的列表(也是我复制上述内容的地方)。