2

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>
4

3 に答える 3

3

すべてのブラウザーがこれを受け入れますが、X(HT)ML を有効にするには、Javascript コードを CDATA ブロックに入れる必要があります。

于 2010-06-17T13:01:17.977 に答える
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>
于 2010-06-17T13:02:06.480 に答える
1

いいえ、実際には無効です。XHTML ファイルでインライン JavaScript を使用する場合は、JavaScript をCDATAでラップする必要があります。それをしたくない場合は、&、<、および > のエンコードに行き詰まることになります。これは、JavaScript では非常に面倒なことです。

于 2010-06-17T13:02:19.000 に答える