xhtmlでは script タグの内容が特別扱いされないため、書き方に制約があります。無用な手間を省くためプログラムを別のファイルに書いて、表示時に読み込む方法が推奨されています。
<script type="text/javascript" src="ファイルのパス"></script>
たとえば、次のようにプログラムを書いて、
function showimg1(){ document.getElementById("area1").src = "images/img1.png"; } function showimg2(){ document.getElementById("area1").src = "images/img2.png"; } function showimg3(){ document.getElementById("area1").src = "images/img3.png"; }
拡張子.jsで保存して、head部に次のように書きます。ここでは test.js という名前だったとして、
<script type="text/javascript" src="test.js"></script>
これで、test.js 内の function が使えます。
xhtmlでは、scriptタグの内容も(styleの内容も)他のタグと区別なく処理します。つまり次の文字は特別な意味をもつことになりますからそのまま書いてはいけません。
このテキストでは次のように解決しています。
< と書くと、javascriptがプログラムとして < と見るか、< と見るかはっきりしません。ブラウザにより異なる可能性があるので使えません。
xmlでは<や&を特殊文字と解釈しない範囲だと指定する方法がありますが、ブラウザが対応していないことがあります。xhtmlをxmlと解釈するかhtmlと解釈するかのわずらわしい問題が絡みます。これも使えません。
実は > がそのまま通るので比較の順序を変えればいいのです。
if ( x < 10 ) { … }
という部分は
if ( 10 > x ) { … }
とすればいいのです。
たとえば、次のようなプログラムを書きたい時は、
if ( a > 0 && 10 > a ){ // aが0より大きく、なおかつ10より小さい場合の処理 }
次のように分けて書くことで同じことができます。
if ( a > 0 ){ if( 10 > a ){ // aが0より大きく、なおかつ10より小さい場合の処理 } }