XHTML コードの記述規則は、HTML の記述よりもはるかに厳格です。次のようなコードは HTML では有効ですが、XHTML では無効です。 [javascript] コードをコピー コードは次のとおりです: <br>function Compare(a, b) <br>{ <br>if(a < b) <BR>{ <BR>alert("a は b より小さい") ; <BR>} <BR>else if(a > b) <BR>{ <BR>alert("a は b より大きい") <BR>else <BR>{ <BR>alert ("a は b に等しい"); <BR>} <BR>} <BR> <br>function(a, b) ) <br>{ <br>if(a < b) <BR>{ <BR>alert("a は b より小さい"); <BR>} <BR>else if(a > b) <br>{ <br>alert("a は b より大きい"); <br>} <br>else <br>{ <br>alert("a は b に等しい"); <br> HTML では、 要素内のどのコンテンツを解析できるかを決定する特別なルールがありますが、これらのルールは XHTML には適用されません。これは、不等号 (<) が XHTML の新しいタグの開始として解析されるためです。ただし、ラベルとして、小なり記号の後にスペースを続けることはできないため、構文エラーが発生します。 <br>解決策は 2 つあります。1 つ目は、コード内のすべての不等号 (<) を対応する HTML エンティティ (<) に置き換えます。2 つ目は、CData フラグメントを使用して JavaScript コードを含めます。 </div>メソッド 1 に対応するコード: <br>[javascript] <br><br><br><br><div class="codetitle">コードをコピー <span><a style="CURSOR: pointer" data="41685" class="copybut" id="copybut41685" onclick="doCopy('code41685')"><u> コードは次のとおりです: </u> </a> </span><script type="text/javascript"> </div>関数 Compare(a, b) <div class="codebody" id="code41685">{ <br>if(a < b) <BR>{ <BR>アラート("a は b より小さい"); <BR>else if(a > b) <br>{ <br>alert("a は b より大きい"); <br> else <br> { <br>alert("a は b に等しい"); <br>} <br>} <br> <br>関数 Compare(a, b) <br>{ <br>if(a < b) <br>{ <br>alert("a は b より小さい"); <br>else if(a > ; b) <br>{ <br>alert("a は b より大きい"); <br>} <br>else <br>{ <br>alert("a は b に等しい") ; <br> } <br>} <br> メソッド 2 に対応するコード: [javascript] コードをコピー コードは次のとおりです: <![CDATA[ </U>関数 Compare(a, b) </a>{ </span>if(a < b) </div>{ <div class="codebody" id="code11372">alert("a は b より小さい"); <BR>else if(a > b) <br>{ <br>alert("a は b より大きい") <br>} <br>else <br>{ <br>alert("a は b に等しい"); >} <br>} <br>]]> <![CDATA[ <BR>function Compare(a, b) <BR>{ <BR>if( a < b) <BR>{ <BR>alert("a は b より小さい") <BR>} <BR>else if(a > b) <br>{ <br>alert("a は b より大きい"); <br>} <br>else <br>{ <br>alert("a は b に等しい"); <br>} <br>} <br>]]></ script> <br><br> <br>方法 1 はコードを XHTML で正常に実行できますが、方法 2 は XHTML 互換の問題を解決できます。ブラウザ。ただし、多くのブラウザは XHTML と互換性がないため、CData フラグメントをサポートしません。したがって、JavaScript コメントを使用して CData タグをコメントアウトします。 <br>対応するコード: <br>[html] <br><br><br><br></u></a></span> </div>コードをコピー <br><br><br> コードは次のとおりです: <br><div class="codetitle"> <span> <script type="text/javascript"> <a style="CURSOR: pointer" data="50893" class="copybut" id="copybut50893" onclick="doCopy('code50893')">//<![CDATA[ <u>function Compare(a, b) </u>{ </a>if(a < b) </span> { </div>alert("a は b より小さい"); <div class="codebody" id="code50893">} <br>else if(a > b) <br>{ <br>alert("a は b より大きい") ; <br>} <br>else <br>{ <br>alert("a は b に等しい") <br>} <br>} <br>//]]></ script> <br><script type="text/javascript"> <br>//<![CDATA[ <BR>function Compare(a, b) <BR>{ <BR>if(a < b) <BR>{ <BR>alert("a は b より小さい"); <BR>} <BR>else if(a > b) <BR>{ <BR>alert("a は b より大きい) "); <BR>} <BR>else <BR>{ <BR>alert("a は b に等しい"); <BR>} <BR>} <BR>//]]> <br>< ;/script> ; <br><br> <br>この形式は、最新のすべてのブラウザで適切に機能します。 <br>添付: 非推奨の構文 <br>[javascript] <br><br><br><br><br>コードをコピー </div> <br><br> コードは次のとおりです: <br><div class="codebody" id="code32331"> <br><script><!-- <BR>function SayHi(){ <BR>alert("Hi!); <BR>} <BR>//--><!-- <BR>function SayHi(){ <BR>alert("Hi!); <BR>} <BR>//--> 上記のように HTML コメントで JavaScript コードをラップすると、 要素をサポートしていないブラウザで埋め込み JavaScript コードを非表示にすることができます。つまり、<script> タグ内のコンテンツを無視できます。 JavaScript をサポートするブラウザではこの状況が発生した場合、解析する必要のある JavaScript コードが含まれているかどうかをさらに確認する必要があります。 <br><br>このコメント形式はすべてのブラウザで認識され、正しく解釈できますが、すべてのブラウザはすでに JavaScript をサポートしているため、この形式を使用する必要はありません。