WWW ページは CGI でもない限りスタティックなものであるという観念はスクリプティングによって破られる。これを有効に活用することでページの表現力・サービス・アクセシビリティが大きく高まるだろう。
スクリプトには“台本”という意味がある。台本によってページが変化するのである。スクリプトはサーバ側で実行されるものとブラウザ(クライアント)側で実行されるものとがあるが,ここで扱うのは後者で,とくにクライアントサイドスクリプトと呼ばれる。以下,断らない限り,これを単にスクリプトと呼ぶことにする。ブラウザが状況に応じて異なった処理ができるような簡単なプログラミング言語のことと思って差し支えない。
スクリプト言語として知られているのは,JavaScript,Visual Basic Scripting Edition(以下,VBScript),Tcl などである。
これらのスクリプト言語の特徴は,動作が軽快であること(ややこしい概念や機能はサポートされていないことが多い),セキュリティに問題が生じるような動作(ファイル入出力など)はできないようになっていることである。
スクリプトを記述するための要素が
<SCRIPT>...</SCRIPT>
である。この中に記述するわけだが,そのスクリプトについて前もって属性で指定しておく必要がある。
属性 | 値 | 解説 |
---|---|---|
TYPE | MIME タイプ | スクリプト言語の MIME タイプ。必須。 |
SRC | URI | スクリプトが外部ファイルとしてある場合,それを指し示す URI。 |
DEFER | ブール値 | スクリプト中に文書を書き換える記述がないことを宣言し,それによってスクリプト実行中に HTML の表示を続けるようブラウザに促す。 |
ここで断っておくと,ブール値を与える DEFER 属性は本来は DEFER="defer" と与えるべきなのだが,省略して DEFER と属性値のみを書く。“ブール値”を与える属性はすべてこの要領で,属性値が書かれたら yes,書かれなければ no を表す。
XHTML ではこの記法は許されない。かならず defer="defer" のように書く必要がある。ただし,この“正式な”記法をサポートしないブラウザもある。
<SCRIPT>...</SCRIPT> はヘッダ・本文のいずれにも含めてよい。ふつう,ヘッダ中に関数(プロシージャ)を定義して,本文中から呼び出すということがされる。この方法では,スクリプトがファイル中に分散しないのでデバッグ(プログラムの誤りの修正)がやりやすい。
いっぽう,スクリプトに対応していないブラウザのための記述もしておく必要がある。
<NOSCRIPT>...</NOSCRIPT>
これは,スクリプト対応ブラウザがスクリプトを実行したときは無視され,スクリプト未対応ブラウザまたはスクリプト対応ブラウザがスクリプトを有効としなかったときにその内容が代わりに表示される。中には直接文章を書かずに,<P> などを経て書く。表示されるとき,前後は改行される。
スクリプトを記述するのに,まず <SCRIPT> の TYPE 属性にスクリプト言語の MIME タイプ(ここではデータの種類と考えていただいてもよい)を与えなければならない。先ほどあげた 3 種類の言語には次のような MIME タイプを与える。
スクリプト言語 | MIME-タイプ |
---|---|
JavaScript | text/javascript |
VBScript | text/vbscript |
Tcl | text/tcl |
また,Try next HTML の Section 13 で紹介した <META> を使って,おもに使用するスクリプト言語を宣言するとよい。
<META HTTP-EQUIV="Content-Script-Type" CONTENT="(MIME タイプ)">
たとえば,JavaScript をおもに使うといった場合には,
<META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript">
とヘッダ部分に書き込めばよい。