我正试图找出错误#5& #6在此处说明:https://validator.w3.org/nu/?showsource=yes&doc=http%3A%2F%2Fwww.criminal-lawyers.com.au#l213c125
这是HTML页面的缩写摘录(缩进并添加了一些注释):
<!DOCTYPE html>
<html lang="en-US" prefix="og: http://ogp.me/ns#">
<head>
<meta name="google-site-verification" content="hC6haEDgNzt-f1TAXuv9CrzeH2K5caXUbr-b1XSXcUo" />
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>Criminal Lawyers Melbourne - Doogue O'Brien George</title>
<!-- Omitted huge number of <meta>, <link>, <style> and <script> elements -->
<style type="text/css" id="custom-background-css">
body.custom-background { background-color: #dddddd; }
</style>
<span style="display:none">SCS URL: http://www.criminal-lawyers.com.au<br>Page Id: 5150<br></span>
<link href="https://plus.google.com/100949400750888670994" rel="publisher"/>
<script type="text/javascript"> /* Omitted */ </script>
</head> <!-- Line 211 -->
<body onload="_googWcmGet('number', '03-9670-5111')" class="home page page-id-5150 page-template-default custom-background ">
<!-- Omitted -->
</body>
</html>
来自Validator的错误消息:
错误:错误结束标记head
。
从第211行第1列;到第211行,第7栏
</script>↩</head>↩↩<bod
错误:看到了标记body
,但相同类型的元素已经打开。
从第213行第1栏;到第213行,第125栏
↩</head>↩↩<body onload="_googWcmGet('number', '03-9670-5111')" class="home page page-id-5150 page-template-default custom-background ">↩ ↩ <d
但严重的是,我不认为指出的错误确实存在。为什么关闭头部标签是流浪的,还有另一个身体元素打开?每当我检查源代码时,只有一个关闭头标记,并且实际上只有一个开放体标记。这些错误在哪里?
欢迎任何反馈。
2015年7月3日更新:
检查源代码时显示的span元素与后端不完全相同。它由另一组代码控制:
<span style="display:none">
<?php
global $wp;
$current_url = home_url(add_query_arg(array(),$wp->request));
echo "SCS URL: ".$current_url."<br>";
$page_id = get_the_ID();
echo "Page Id: ".$page_id."<br>";
if($page_id == 5133){
?>
<script>
//document.title = "Lawyers Profile | Criminal Lawyers Melbourne - Doogue O'Brien George";
</script>
<?php
//echo "it's the page";
}else{
//echo "it's not the page";
}
?>
</span>
以上是后端实际上的内容。我试着将它转移到身体,并尝试删除它。这两种方式都导致了进一步的错误。
好吧,我认为假设进一步的错误是由修复引起的,这是错误的。正如下面一位评论者所提到的,通过修复一个错误,您可以使验证程序找到其他错误。
答案 0 :(得分:2)
在HTML中,HEAD
和BODY
(以及HTML
)元素始终存在 * 。但是,标记元素开头和结尾的标记是可选的。 HTML解析器将根据需要插入打开和关闭标记,具体取决于文档包含的标记。
当遇到<span>
元素中不允许的HEAD
时,它会隐式关闭HEAD
并打开BODY
元素,就好像有一个{ {1}}和</head>
标记。
稍后,解析器会遇到已经关闭的<body>
元素的</head>
标记,以及尝试打开另一个 {的HEAD
标记{1}}元素。
只需删除<body>
,将其移至BODY
元素或将内容处理为SPAN
或类似内容。
* HTML4框架集文档必须包含BODY
元素而不是TITLE
。
答案 1 :(得分:0)
问题是<span>
中有<head>
个元素,这是无效的。
<span style="display:none">
SCS URL: http://www.criminal-lawyers.com.au<br>Page Id: 5150<br></span>
摆脱这种情况,你的问题就解决了。