構 文 | <SCRIPT>...</SCRIPT> |
---|---|
属性仕様 |
|
内 容 | 組み込まれたスクリプト |
内容になる | HEAD, インライン要素, ブロック−レベル要素 |
SCRIPT要素は文書に クライアント側スクリプトを含みます。クライアント側スクリプトはユーザーの事象に応じて文書に大いに相互性を発揮します。例えば、ユーザーの何らかのミスの通告を直ぐに提供するために、送信前にユーザーの入力書式をチェックするのに使うことができます。
全てのブラウザがクライアント側スクリプトをサポートしていないし、サポートしたブラウザでもユーザーがスクリプトを無効にできることに注意し、それで出来るだけクライアント側スクリプトへの依存を避けるべきです。 NOSCRIPT要素は、クライアント側スクリプトをサポートしていないか、ユーザーがスクリプトを無効にしているブラウザ用に内容を提供するのに使われます。検証フォームの場合クライアント側スクリプトのエラー・チェックは、サーバーで送信を処理する CGIスクリプトやジャバ・サーブレットで繰り替えされなければなりません。
また、ブラウザが異なれば異なったスクリプト言語をサポートしバグも様々であることに注意しましょう。出来るだけ多くのブラウザでスクリプトをチェックするように推奨します。クライアント側スクリプトをサポートしているブラウザとしては、 Netscape Navigator 2.0 以降・ Microsoft Internet Explorer 3.0以降そして Opera 3.0以降です。
必須であるSCRIPTのTYPE属性は、スクリプト言語のメディア・タイプ、 e.g., text/javascript、を特定します。しかし多くのブラウザは、ただ旧式になるLANGUAGE属性しかサポートせず、言語の名前を特定します。サポートされているLANGUAGEの値として JavaScript・ JavaScript1.1そして VBScriptがあります。この値は大文字小文字を区別しません。
ブラウザは、サポートしていないLANGUAGE値のスクリプトを無視します。例えばNetscape Navigator 3.0は LANGUAGE="JavaScript"か LANGUAGE="JavaScript1.1"のスクリプトを実行しますが、 LANGUAGE="JavaScript1.2"やLANGUAGE="VBScript"のスクリプトを無視します。
LANGUAGE属性がないと、ブラウザは言語はJavaScript 1.0とみなします。 TYPE属性でJavaScriptのバージョンを指定する確立した慣例がないので、何処からJavaScript 1.0ではない言語とバージョンかを特定するのにLANGUAGEを使うことを推奨します。
組み込まれたスクリプトは、 SCRIPT要素の内容として与えられます。 SRC属性は、 外部スクリプトを特定することによってコードを再利用できます。選択性のCHARSET属性は外部スクリプトの文字コード化を与えます(典型的にはISO-8859-1)。ブラウザが外部スルリプトを取ってこれないなら、何らかの組み込まれたスクリプトを実行します:でなければ、組み込まれたスクリプトを無視します。例えば、以下のように:
<SCRIPT TYPE="text/javascript" SRC="foo.js" CHARSET="ISO-8859-1">
<!-- // embedded script, only executed if foo.js is unavailable // -->
</SCRIPT>
Netscape Navigatorは、外部スクリプトが application/x-javascriptの内容タイプで保存されていることを要求します。
DEFER属性は、文書が表示されるまでブラウザがスクリプトの解析を待つことを指定します。 DEFERを使うスクリプトは、以下なる文書内容をも生成してはいけませんし、文書が読み込まれている間におこるユーザー事象への応答(e.g., フォーム転送)に対応されるべきではありません。 DEFER属性が、画像を前もって読み込んだり状況バーのメッセージのスクロールでユーザーを悩ます、スクリプトの遅延に有効ですが、今のブラウザはこの属性を一般的にはサポートしていません。
SCRIPT要素は、文書の HEADか BODYに何回でもきます。典型的にはSCRIPT要素は、 BODY内容を生成しないのなら、 HEADで使われます。
HTML 3.2より前のブラウザは、 SCRIPT要素を知らなく、 SCRIPTの内容を普通のHTMLとして取り扱います。これらのブラウザがSCRIPTの内容を無視できるようにするには、スクリプト言語はSGMLコメントが組み込まれたスクリプトを囲うのに使われることを許します。例えば:
<SCRIPT TYPE="text/javascript">
<!-- comment to end of line document.write("foo"); // comment to end of line -->
</SCRIPT>
"-->"がJavaScript一行コメント(二つのスラッシュではじまる)内にくることに注意してください。
技術的には何らかの文字が続く最初の"</" の出現は、 SCRIPT要素の終了タグとみなされます。ブラウザはこの中で許しても組み込まれたスクリプト内で"</P>"といった文字列の使用を避けるべきです。JavaScriptでは、早まって SCRIPT要素を終わることを避けるためにバックスラッシュを使うことができます、例えば e.g.document.write("<¥/P>")。