为什么我的JavaScript导致HTML验证错误?

时间:2012-08-17 04:49:19

标签: javascript html5 validation w3c

所以,我基本上得到了这个页面,当我通过W3C Validator运行它时,它没有验证。有谁知道为什么?

http://jsfiddle.net/BcrW9/1/

谢谢!

2 个答案:

答案 0 :(得分:3)

这是你的jquery包括。 可能是某种编码问题。从其他站点复制代码(如脚本块)时偶尔会发生这种情况。我认为OSX会保留原始编码,而Windows会将剪贴板文本转换为某些标准编码。无论如何,这是有效的。我只是复制了第二个脚本标记,粘贴它,更改了src值,并删除了从其他地方复制的那个。 http://jsfiddle.net/BcrW9/2/

PS - 请在评论中确认或拒绝您使用OSX。这在OSX中始终发生在我身上。从未在Windows中出现此问题。

答案 1 :(得分:2)

真的只是扩展MicronXD的答案。紧跟<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">文字但在换行符之前的字符是 U + 200C ZERO WIDTH NON-JOINER 。 (我需要一个十六进制编辑器才能看到这个)。

对于HTML5解析器,这是一个普通的文本字符,因此它假定head元素已经完成并且body元素已经开始(请记住,结束头和起始体标记都是因此它可以推断出这些标签,创建了body元素并为其添加了流浪角色。

然后验证器解析器会看到结束头标记和起始体标记,并将它们报告为错误,因为解析器已经在&#34; In body&#34;状态。

要摆脱迷路字符,只需选择并删除两个脚本行之间的字符,包括第一个脚本行末尾的>和第二个脚本行开头的<脚本行,然后重新键入您需要的字符。