我一直在尝试通过W3C在XHTML 1.0 Strict中验证我的网站代码。
我目前无法解决的最后一个错误:
"document type does not allow element "a" here"
这是因为我通过以下代码“隐藏”了机器人的电子邮件地址:
<td><script type="text/javascript">var name="contact";var domain="theriff.fr";document.write('<a href="mail'+'to:'+name+'@'+domain+'">contact@theriff.fr</a>');</script></td>
有谁知道我可以怎样保留电子邮件地址的“隐藏”状态,并且仍然请验证W3C中的最后一个错误?
提前致谢!
最佳答案
对于XML解析器,看起来您在<a>
元素内有一个<script>
元素(解析器不理解JavaScript)。
在<script>
元素内声明一个CDATA section:
<script type="text/javascript">
// <![CDATA[
// JavaScript here
// ]]>
</script>
这告诉解析器不解析(即解释为XML)CDATA部分中的内容。如果浏览器将它们传递给JS引擎,则可能需要在分隔符之前使用
//
来防止JS引擎解释它们。另请参阅:Properly Using CSS and JavaScript in XHTML Documents。
旁注:You can't use
document.write
in XHTML documents:注意:
document.write
(如document.writeln
)在XHTML文档中不起作用(在错误控制台上会出现“不支持操作”(NS_ERROR_DOM_NOT_SUPPORTED_ERR)错误)。如果打开带有.xhtml文件扩展名的本地文件或使用application / xhtml + xml MIME类型提供服务的任何文档,就属于这种情况。 W3C XHTML FAQ中提供了更多信息。