以下是有效的XHTML 1.0 Transitional吗?

时间:2010-06-17 12:59:11

标签: javascript ampersand xhtml-transitional

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>

3 个答案:

答案 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中可能会非常痛苦。