这将是我的第一个网站,我不想留下这些错误。有人可以帮我解决这些问题吗?
错误1:
if (xmlhttp.readyState==4 && xmlhttp.status==200)
错误:字符“&”是分隔符的第一个字符,但是作为数据出现。 当我和我的AJAX代码停止工作时 我不知道如何纠正这一点。
错误2:
…ems"><a href="brushdescription.php?id=<?php echo $popularbrushesrow['bd_brushi…
错误:字符“&lt;”是分隔符的第一个字符,但是作为数据出现
同样的错误,但这次是<
更新 我正在使用这个doctype:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
答案 0 :(得分:4)
<
和&
是XML中predefined entities的部分内容,在将页面验证为XML
或XHTML
时需要转义。
<
应替换为<
(小于)
&
应替换为&
(&符号)
但是,如果在JavaScript中使用这些字符,您可以(而不是)将脚本包含在<![CDATA[]]>
部分中,该部分指示解析器不将代码解释为标记,也不会导致验证错误。< / p>
答案 1 :(得分:2)
尝试使用<![CDATA[]]>
标记包装您的Javascript,如下所示:
<script>
//<![CDATA[
// Javascript goes here.
//]]>
</script>
另外,你应该研究separation of concerns。尝试将您的逻辑移出您的视图。如果您的Javascript位于HTML页面中,请尝试将其包含在单独的文件中。
来自维基百科:
超文本标记语言(HTML),层叠样式表(CSS)和JavaScript(JS)是用于开发网页和网站的互补语言。 HTML主要用于组织网页内容,CSS用于定义内容呈现样式,JS定义内容如何与用户交互和行为。从历史上看,情况并非如此。在引入CSS之前,HTML执行了定义语义和样式的职责。
答案 2 :(得分:0)
答案 3 :(得分:0)
对于第一个错误,请考虑从XHTML切换到HTML5。使用XHTML几乎没有理由。使用此:
<!DOCTYPE html>
W3C验证器用于客户端代码,但似乎您正在尝试验证服务器端代码,因此验证PHP标记。发送渲染的代码以进行验证,第二个错误将消失。呈现的代码是浏览器中“查看源代码”下可见的代码。如果网址已经在某处,则可以提供该网址。
答案 4 :(得分:0)
按XML rules,“&符号(&amp;)和左尖括号(&lt;)绝不能以字面形式出现,除非用作标记分隔符,或用于注释,处理指令或CDATA部分。如果在其他地方需要它们,则必须分别使用数字字符引用或字符串“&
”和“<
”进行转义。“所以”&amp;&amp;“将被写为{{ 1}}。
然而,仅当文档被处理为“真实的XHTML”时才会出现这种情况,因为已经使用XML内容类型发送文档,例如,使用HTTP标头&&
。这样做意味着IE的旧版本会阻塞它,现代浏览器如果包含任何格式错误,将拒绝呈现文档。人们通常不这样做 - 他们只是使用XHTML,因为有人告诉他们这样做,他们的文档是以HTML文档类型发送的,这意味着Content-Type: application/xhtml+xml
元素内容的处理方式不同。这解释了为什么满足验证程序的修复程序会导致分页。
在XHTML 1.0规范中,(in)着名的appendix C说:“如果你的脚本使用&lt;使用外部脚本。或者&amp;或]]&gt;或 - 。“如果您需要使用XHTML,这是一个简单的方法。只需将您的脚本放在外部文件中,然后使用script
“调用”它。