Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的网站不能验证?_Javascript_Html_Validation - Fatal编程技术网

Javascript 为什么我的网站不能验证?

Javascript 为什么我的网站不能验证?,javascript,html,validation,Javascript,Html,Validation,我正在通过W3CHTML验证程序()运行我的站点,尽管我遇到了一个非常奇怪的错误 这是逐字复制的错误: Line 31, Column 29: character "&" is the first character of a delimiter but occurred as data if( pageName != "blog.html" && pageName != "blog" ) { ✉ This message may appear in several c

我正在通过W3CHTML验证程序()运行我的站点,尽管我遇到了一个非常奇怪的错误

这是逐字复制的错误:

 Line 31, Column 29: character "&" is the first character of a delimiter but occurred as data
if( pageName != "blog.html" && pageName != "blog" ) {
✉
This message may appear in several cases:

You tried to include the "<" character in your page: you should escape it as "&lt;"
You used an unescaped ampersand "&": this may be valid in some contexts, but it is recommended to use "&amp;", which is always safe.
Another possibility is that you forgot to close quotes in a previous tag.
第31行第29列:字符“&”是分隔符的第一个字符,但作为数据出现
如果(pageName!=“blog.html”&&pageName!=“blog”){
✉
此消息可能出现在几种情况下:

您试图包括“尝试将javascript放入CDATA块中,如下所示:

<script type="text/javascript">
<![CDATA[
// content of your Javascript goes here
]]>
</script>

这将使其通过验证。为了更加安全,您可以在CDATA标记周围添加Javascript注释,以对不理解CDATA标记的旧浏览器隐藏它们:

<script type="text/javascript">
/* <![CDATA[ */
// content of your Javascript goes here
/* ]]> */
</script>

/*  */

我承认,这个答案是“借用”来的:

尝试将javascript放入CDATA块中,如下所示:

<script type="text/javascript">
<![CDATA[
// content of your Javascript goes here
]]>
</script>

这将使其通过验证。为了更加安全,您可以在CDATA标记周围添加Javascript注释,以对不理解CDATA标记的旧浏览器隐藏它们:

<script type="text/javascript">
/* <![CDATA[ */
// content of your Javascript goes here
/* ]]> */
</script>

/*  */

我承认,这个答案是“借用”自:

这是根据XHTML进行验证造成的-XHTML作为XML,不能/不能对[script]元素进行特殊的CDATA修正

它作为HTML(4或5)有效-事实上,按照建议编码字符将破坏HTML上下文中的JavaScript

此问题可通过以下方式解决:

  • 确保服务器发送HTML(非XHTML/XML)内容类型和/或
  • 使用HTML doctype(例如
    )或
  • 显式地告诉验证器检查HTML或
  • 如果源代码确实是XHTML,则编写有效的XHTML

总而言之:XHTML不是HTML。

这是根据XHTML进行验证造成的-XHTML作为XML,不会/不能对[script]元素进行特殊的CDATA修改

它作为HTML(4或5)有效-事实上,按照建议编码字符将破坏HTML上下文中的JavaScript

此问题可通过以下方式解决:

  • 确保服务器发送HTML(非XHTML/XML)内容类型和/或
  • 使用HTML doctype(例如
    )或
  • 显式地告诉验证器检查HTML或
  • 如果源代码确实是XHTML,则编写有效的XHTML

总而言之:XHTML不是HTML。

您可能在这段代码之前的代码中有一个错误,这是您真正的错误。@johncode-我考虑过,尽管在这段代码上面引用了其他外部Javascript和CSS文档。我仔细检查了一下,它们都被称为绝对正确。您可能在co中有一个错误“在这段代码之前执行de,这是您真正的错误。@johncode-我考虑过,尽管在这段代码上面引用了其他外部Javascript和CSS文档。我已经仔细检查了,它们都被称为绝对正确。如果此答案解决了问题,请将其标记为有效的答案。如果此答案解决了问题,请将其标记为有效的答案。”他提出了一个问题,请将其标记为有效的答案。