w3c验证器服务抱怨以下html无效。它不喜欢我的javascript中的&符号(&)。但是在javascript字符串中允许使用&符号,不是吗?
<!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>Page Title</title>
</head>
<body>
<script type="text/javascript">
function search(query) {
redir = "http://search.mysite.com/search?s=FIN&ref=&q=" + query;
window.location.href = redir
return false;
}
</script>
<span>This is all valid HTML</span>
</body>
</html>
答案 0 :(得分:3)
所有浏览器都会使用此功能,但为了使其成为有效的X(HT)ML,您需要将Javascript代码放在CDATA块中。
答案 1 :(得分:2)
即使在javascript w3c验证器中也不喜欢&符号。尝试从验证器
评论您的javascript<!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>Page Title</title>
</head>
<body>
<script type="text/javascript">
//<![CDATA[//><!--
function search(query) {
redir = "http://search.mysite.com/search?s=FIN&ref=&q=" + query;
window.location.href = redir
return false;
}
//--><!]]>
</script>
<span>This is all valid HTML</span>
</body>
</html>
答案 2 :(得分:1)
不,它确实无效。如果要在XHTML文件中使用内嵌JavaScript,则需要将JavaScript包装在CDATA中。如果你不想这样做,那么你就会遇到编码&amp;,&lt;和&gt ;,这在JavaScript中可能会非常痛苦。