错误" noscript",W3C XHTML

时间:2015-01-30 17:43:57

标签: xhtml w3c-validation head noscript

我正在尝试将我的文档验证为XHTML 1.0 Transitional(W3C)。

我有以下错误: “文档类型不允许元素”noscript“here;假设缺少”object“start-tag” 对应于此代码:

<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt=""
src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/1096/?
value=1.00&amp;label=Y-skCMY_QM&amp;guid=ON&amp;script=0"/>
</div>
</noscript>
</head>

但是我的验证失败了。问题是什么?请帮我解决这个问题。

1 个答案:

答案 0 :(得分:3)

您的一个解决方案可能是将其放在body而不是文档的head中,如下所示:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Title</title>
<meta name="viewport" content="width=device-width"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt=""
src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/1096/?
value=1.00&amp;label=Y-skCMY_QM&amp;guid=ON&amp;script=0"/>
</div>
</noscript>
</body>
</html>

这导致:

This document was successfully checked as XHTML 1.0 Transitional!

此外,根据this answer,它确实没有区别(我在这里谈论的是headbody):

  

已经使用HEAD以外的Google广告部分完成了此举   在BODY部分本身。从那以后真的没有什么不同   它被移动了,它就在用于广告的参数之后   显示。

解决方案#2 如果您需要完全删除<noscript>,您可以尝试进行以下操作:

<div id='noscript' style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt=""
src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/1096/?
value=1.00&amp;label=Y-skCMY_QM&amp;guid=ON&amp;script=0"/>
</div>
<script>document.getElementById('noscript').style.display='none'</script>

这使得工作与第一个解决方案完全相同。如果禁用JavaScript,则<script>...</script>将无法执行,因此会显示<div>...</div>