script要素(script statements)はページ内にクラインアントサイド・スクリプト(client-side script)を組み込みます。head要素内、または body要素内のどちらに何度でも定義可能です。src属性でスクリプトファイルを外部から参照させることも、また直接 script要素内にスクリプトコードを書くこともできます。UA はスクリプトの種類に応じたスクリプトエンジンにそのスクリプト情報を受け渡し、返ってきた結果を出力します。
HTML では script要素の内容は解析されない文字データ(Character DATA)だったのですが、XHTML では script要素の内容は解析対象となる文字データ (Processed Character DATA) になったため、マークアップ区切り文字は意味を持ち、文字実体参照などは展開されます。たとえば、script要素内に直接スクリプトコードを記述する場合、HTML4 では script要素に対応していない古い UA(script要素には Netscape Navigater 2.0, Internet Explorer 3.0 より対応)のための後方互換として "<!-- -->" のコメント宣言を使うことが常套手段とされていましたが、現在では script要素に対応していないような環境で閲覧しているユーザーは皆無なので、いちいち "<!-- -->" を使ってコメント・アウトする必要はありません。
ましてや XHTML では "<!-- -->" を使ってスクリプトコードをコメント・アウトしてしまうと、UA によっては本当にコメントとみなして、スクリプト情報をスクリプトエンジンに渡さないかもしれません。XHTML では script要素内に記述するスクリプトコードは "<![CDATA[ ]>" の CDATAセクションを使うことで解析されない文字データ(Character DATA)にすることが可能ですが、現状では CDATAセクションをサポートしていない環境も多いため、XHTML では script要素は直接スクリプトコードを記述するのではなく、別にスクリプトコードを記述したファイルを用意して外部から参照させる手法で用いることが推奨されています。
なお、スクリプトで重要な役割を提供している場合は、スクリプトに対応していない、またはスクリプトの設定がオフになっているなど、スクリプトの実行が不可能な環境のために noscript要素でスクリプトの表現している情報の代替となる内容を提供するようにしましょう。
スクリプト言語には、主に JavaScript が使用されています。ただし、JavaScript にも ECMA が策定した ECMAScript と ECMAScript に Microsoft社が自社技術を追加して拡張した Windowsスクリプト言語の JScript があります。さらに JavaScript の他にも、Microsoft社によって開発されたスクリプト言語で、同社のウェブブラウザである Internet Explorer 上でのみ動作する VBScript があります。
script要素を body要素内で使う場合、要素型は body要素の子孫要素としてインライン要素に分類されますが、body要素やブロック要素のみを内包できる要素の直接の子要素として、その直下に置くこともできます。
スクリプトコードが記述されているファイルの文字コード(符号化方法)を指定します。スクリプトコードを記述したファイルを外部から参照させる場合にのみ有効です。たとえば、検索エンジンのキャッシュなどではスクリプトコードを記述したファイルが異なる文字コードで記述されていたりすると、内容を生成するスクリプトを使っている場合に出力された文字列が文字化けを起こすため、積極的に指定しておいた方が良いでしょう。日本語の文字コードには "Shift_JIS", "EUC-JP", "ISO-2022-JP", "UTF-8" などがあります。文字コードは半角アルファベットの大文字・小文字が区別されません(case-insensitive)。
スクリプトに内容生成を含まないことを宣言します(JavaScript であれば documentオブジェクトに writeメソッドを使うことで文書内に内容生成を行うことができます)。UA は上から順にソースコードを解析していくため、たとえば、head要素内に内容生成を含まない膨大なスクリプトコードが記述されている場合、defer属性を指定することで、UA はそのスクリプトコード部分の解釈を後回しにして、先に body要素の内容を表示することでスクリプトの実行を待たずに済むのでレンダリング速度の向上が期待できます。HTML4.01 では defer、XHTML では属性値を省略できないので defer="defer" と記述します。
使用するスクリプト言語のバージョンを指定します(例:language="JavaScript1.2")。値はスクリプト言語の識別子ですが標準規格でないため、type属性を指定することが推奨されています。たとえば、JavaScript の言語バージョンには次のようなものがあります。言語バージョンは半角アルファベットの大文字・小文字が区別されません(case-insensitive)。
UA が搭載しているスクリプトエンジンの振る舞いは、スクリプト言語バージョンに依存します。なお、言語バージョンの指定が省略されても、どの UA も大抵は JavaScript のスクリプトコードとして認識し、言語バージョンがない場合は自動的に最新バージョンとして振舞います。ただし、言語バージョンを指定しても UA によっては正しく判別しない場合があります。また、HTML4 より language属性の指定は標準規格から外されたため、スクリプトを利用するには type属性を指定する必要があります。
外部から参照させるスクリプトコードを記述したファイルの所在を URI で指定します。外部からの参照には Netscape Navigator 3.0, Internet Explorer 4.0 のバージョンより対応しています。
スクリプト言語の種類を MIMEタイプで指定します。script要素の必須属性です。UA がスクリプト情報を正しく解釈するための情報となります。JavaScript を使用する場合は "text/javascript"、JScript を使用する場合は "text/jscript"、VBScript を使用する場合は "text/vbscript" の MIMEタイプをそれぞれ指定します。
http://w3g.jp/xhtml/dic/script実績:大阪学院 入試サイト New! / 三田市民病院 / 神戸女学院大学 入試サイト / 釣りサンデー