script要素 : スクリプトの組み込み HTML4.01Internet Explorer

要素のデータ

タグ / 開始タグ : 必須、終了タグ : 必須

非推奨 / -

DTD / Strict DTD , Transitional DTD , Frameset DTD

省略不可属性 / type

関連要素 /

基本要素 / インライン要素

要素の説明

この要素は、HTML文書にスクリプトを組み込むもので、head要素あるいはbody要素の中に、何回でも指定することができます。

スクリプトは、このscript要素の内容か、または外部ファイルで定義されます。src属性の設定がない場合は、当該要素の内容をスクリプトであると解釈し、src属性の値がURIであった場合には、当該要素内容を無視してこのURIからスクリプトを取得します。charset属性で指定されている文字符号化方法src属性が示すスクリプトの符号化方法を示し、当該script要素とは無関係です。

1. スクリプト言語の指定

HTMLは特定スクリプト言語に依存しないため、ユーザエージェントに対して各スクリプトの言語を明示します。スクリプト言語は、デフォルト宣言と局所宣言の双方で明示することができます。

1-1. デフォルトのスクリプト言語

文書中のすべてのスクリプトのデフォルトであるスクリプト言語を、head要素内の meta宣言で、次のように指定します。

<meta http-equiv="Content-Script-Type" content="type">

このcontent属性に指定しているtypeとは、スクリプト言語を示すMIMEタイプで、例えば、「text/tcl」、「text/javascript」、「text/vbscript」などがあります。

デフォルトのスクリプト言語を決定する優先順位は次のとおりです。

  1. Content-Script-Typeを指定するmeta宣言がある場合、文字列中で最後に現れる宣言の内容をデフォルトのスクリプト言語に決定する。
  2. meta宣言がなく、Content-Script-Typeを指定するHTTPヘッダがある場合、文字列中で最後に現れるヘッダの内容をデフォルトのスクリプト言語に決定する。

デフォルトのスクリプト言語を指定していない文書で組込みイベントスクリプトが指定された要素を含むものは、不正となります。

1-2. スクリプト言語の局所宣言

文書中のどのscript要素インスタンスも、type属性が指定されていなければいけません。script要素のtype属性値は、当該要素のデフォルトスクリプト言語を上書きします。

次の例は、デフォルトのスクリプト言語を「text/tcl」と宣言し、ヘッダにあるscript要素は外部ファイルの「text/vbscript」であるスクリプトを用い、本文にあるscript要素の内容は「text/javascript」で記されていることを宣言しています。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Script-Type" content="text/tcl">
<script type="text/vbscript" src="http://someplace.com/progs/vbcalc">
</script>
</head>
<body>
<script type="text/javascript">
  JavaScriptの内容
</script>
</body>
</html>

1-3. スクリプトからHTMLの要素を参照する

各スクリプト言語には、スクリプト内からHTML文書オブジェクトを参照するための規約が存在しますが、HTML4.01では定義されていません。しかし、スクリプトから要素への参照は要素名に従います。スクリプトエンジンは、次の優先基準で要素を識別します。

  1. name属性とid属性の双方が設定されている場合は、name属性を優先する。
  2. どちらか一方の場合は、ある方を用いる。

2. 組込みイベント

組込みイベントの領域では、例えばスクリプトとイベントとの結合方法など、頻繁に変更があり得ます。詳しい情報はW3CのWebサイトhttp://www.w3.org/を参照してください。

onload onloadイベントは、ユーザエージェントが1つのウインドウの読み込みを終了した時点、あるいは1つのframeset中のすべてのフレームの読み込みを終了した時点で発生します。この属性は、body要素frameset要素で使えます。
onunload onunloadイベントは、ユーザエージェントが1つのウインドウあるいはフレームから文書を除去する時点で発生します。この属性は、body要素frameset要素で使えます。
onclick onclickイベントは、ポインティングデバイスのボタンが要素の上でクリックされた時点で発生します。この属性は、ほとんどの要素で使えます。
ondblclick ondblclickイベントは、ポインティングデバイスのボタンが要素の上でダブルクリックされた時点で発生します。この属性は、ほとんどの要素で使えます。
onmousedown onmousedownイベントは、ポインティングデバイスのボタンが要素の上で押し下げられる際に発生します。この属性は、ほとんどの要素で使えます。
onmouseup onmouseupイベントは、ポインティングデバイスのボタンが要素の上で放される際に発生します。この属性は、ほとんどの要素で使えます。
onmouseover onmouseoverイベントは、ポインティングデバイスが要素の上に移動してきた際に発生します。この属性は、ほとんどの要素で使えます。
onmousemove onmousemoveイベントは、ポインティングデバイスが要素の上を移動する際に発生します。この属性は、ほとんどの要素で使えます。
onmouseout onmouseoutイベントは、ポインティングデバイスが要素の上から離れていく際に発生します。この属性は、ほとんどの要素で使えます。
onfocus onfocusイベントは、ポインティングデバイスかタブ移動によって要素がフォーカスを受けた際に発生します。この属性はa要素area要素label要素input要素select要素textarea要素button要素で使えます。
onblur onblurイベントは、ポインティングデバイスかタブ移動によって要素がフォーカスを失った際に発生します。この属性はa要素area要素label要素input要素select要素textarea要素button要素で使えます。
onkeypress onkeypressイベントは、要素上で何かあるキーが押されて放された際に発生します。この属性は、ほとんどの要素で使えます。
onkeydown onkeydownイベントは、要素上で何かあるキーが押し下げられる際に発生します。この属性は、ほとんどの要素で使えます。
onkeyup onkeyupイベントは、要素上で何かあるキーが解放される際に発生します。この属性は、ほとんどの要素で使えます。
onsubmit onsubmitイベントは、フォームが提出される際に発生します。この属性はform要素のみに適用されます。
onreset onresetイベントは、フォームがリセットされる際に発生します。この属性はform要素のみに適用されます。
onselect onselectイベントは、ユーザがテキストフィールド中のテキストを選んだ際に発生します。この属性はinput要素textarea要素で使えます。
onchange onchangeイベントは、コントロールが入力フォーカスを失った際に、フォーカスを得た時と比べて値が変化していた時に発生します。この属性は、input要素select要素textarea要素に適用できます。

ユーザユーザエージェントと対話する際に発生する複数のイベントと、1つの動作を結びつけることができます。上に列挙した「組込みイベント」はどれも、スクリプトを値に取ります。このスクリプトは、当該要素に関係するイベントが発生する度に常に実行され、スクリプトデータのシンタクスは、各スクリプト言語に依存します。

フォームのコントロール要素であるinput要素select要素button要素textarea要素label要素は、すべて何らかの組込みイベントに反応します。

次の例では、userNameへのテキスト入力が要求され、ユーザが入力フィールドを離れようとする際にonblurイベントがJavaScriptの関数を呼び出し、userNameに適切な値が入力されているかどうかが検定しています。

<input name="userName" onblur="validUserName(this.value)">

3. 文書の動的変更

文書の読み込みと同時に実行されるスクリプトは、文書の内容を動的に変更することができます。この変更能力は、スクリプト言語自体に依存します。

文書の動的変更は、次のようにモデル化できます。

  1. すべてのscript要素は、文書が読み込まれる際の順番で評価される。
  2. 与えられたscript要素にあるSGML CDATAを形成する、すべてのスクリプト構成素が評価される。その結合生成テキストは、文書中の当該script要素の位置に挿入される。
  3. 生成されたCDATAは、再評価される。

HTML文書は、どのscript要素の処理前も処理後も、HTML DTDに適合するよう制約されます。

次の例は、スクリプトが文書をどのように動的に変更するかを示します。

<title>テスト文書</title>
<script type="text/javascript">
 document.write("<p><b>Hello World!<\/b><\/p>")
</script>

上のスクリプトは、次のHTMLマーク付けと同等の効果を持っています。

<title>テスト文書</title>
<p><b>Hello World!</b></p>

要素の属性一覧

固有属性
defer / languageHTML4.01非推奨 / src / type 必須
一般属性
charset / event / for
汎用属性
id / lang

サンプル

<html><head><title></title>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script type="text/javascript">
<!--
//------------------------------------------------------------
//  別窓表示
//------------------------------------------------------------
function openWi12(fi,na,w,h) {
  window.open(fi,na,"width="+w+",height="+h+",toolbar=no,location=no,
  directories=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes");
}
//-->
</script>
</head>
<body>
<form>別窓に表示します。 <input type="button" value="preview" class="preview" onclick='openWi12("../html401_sample/s_script1.html","win2");return false'></form>
</body></html>
別窓に表示します。 

要素の属性(詳細)

固有属性

defer = (defer) (CI)HTML4.01HTML4.01 Strict DTDHTML4.01 Transitional DTDHTML4.01 Frameset DTDInternet Explorer 初期値 : #IMPLIED (IEの初期値はFALSE)
この属性には、JavaScriptでいう「document.write」を使用していないなどのように、当該スクリプト中では文書の本文を全く生成しないことを明示的に宣言します。従ってユーザエージェントは、スクリプトの実行を待たずに画面表示を継続することが出来ます(表示の高速化)。
  • FalseInternet Explorer : インラインで実行可能な機能は延期されません(デフォルト値)。
  • TrueInternet Explorer : インラインで実行可能な機能が延期されます。
language = CDATA (CI)HTML4.01HTML4.01 Transitional DTDHTML4.01 Frameset DTDHTML4.01非推奨Internet Explorer 初期値 : #IMPLIED
この属性は廃止予定です。 この属性には、当該要素内容のスクリプト言語を指定します。この値は言語の識別子ではありますが、識別子がインターネットの標準ではないのでこの属性は推奨しないこととなり、代わりにtype属性を使用します。
src = %URI; (CT)HTML4.01HTML4.01 Strict DTDHTML4.01 Transitional DTDHTML4.01 Frameset DTDInternet Explorer 初期値 : #IMPLIED
この属性には、外部スクリプトのURIを指定します。
type = %ContentType; (CI)HTML4.01HTML4.01 Strict DTDHTML4.01 Transitional DTDHTML4.01 Frameset DTDInternet Explorer 初期値 : 省略不可
必須 この属性には、当該要素内容のスクリプト言語を指定します。スクリプト言語は、「text/javascript」のようにMIMEタイプで指定します。当該属性値は必ず記述しなければいけません。この属性にデフォルト値はありません。現在登録されているMIMEタイプの一覧は、[MIMETYPES]を参照してください。
  • text/ecmascriptInternet Explorer : ECMAScript
  • text/javascriptInternet Explorer : JScript
  • text/JscriptInternet Explorer : Microsoft JScript
  • text/vbsInternet Explorer : VBScript
  • text/vbscriptInternet Explorer : VBScript(text/vbsと同じ)
  • text/xmlInternet Explorer : XML

一般属性

charset = %Charset; (CI)HTML4.01HTML4.01 Strict DTDHTML4.01 Transitional DTDHTML4.01 Frameset DTD 初期値 : #IMPLIED
この属性には、当該リンクが指し示すリソースの文字符号化方法を指定します。一般的に日本のWebで使われる文字符号化方法には、SHIFT_JIS 、EUC-JP 、UTF-8などがあります。文字符号化方法の名称は、大文字小文字の別を問いません。従って例えば「SHIFT_JIS」も「Shift_JIS」も「shift_jis」も等価になります。
event = CDATA (CI)HTML4.01HTML4.01 Transitional DTDHTML4.01 Frameset DTDInternet Explorer 初期値 : #IMPLIED
※将来の機能のために予約された属性です。
for = %URI; (CI)HTML4.01HTML4.01 Transitional DTDHTML4.01 Frameset DTDInternet Explorer 初期値 : #IMPLIED
※将来の機能のために予約された属性です。
  • javascriptInternet Explorer : JavaScript
  • JScriptInternet Explorer : Microsoft JScript
  • languageInternet Explorer : ブラウザサポートされた言語
  • vbsInternet Explorer : Microsoft Visual Basic Scripting Edition (VBScript)
  • vbscriptInternet Explorer : VBScript
  • XMLInternet Explorer : XML

汎用属性

id = sIDInternet Explorer 初期値 : no default
この属性には、要素に割り当てる名前(id)を指定します。この名前は文書中で一意でなければいけません。この属性は、スタイルシートの選択子、ハイパーテキストリンクの目標アンカー、スクリプトから特定要素を参照するための手段、宣言されたobject要素の名称、ユーザエージェントによる処理一般(例えば、HTMLページからデータベースへデータを移植する際にフィールド名を識別する、HTML文書を他のフォーマットに変換するなど)に用いられます。
lang = sLanguageInternet Explorer 初期値 : no default
この属性には、当該要素の属性値及び内容テキストの基本となる言語コードを指定します。デフォルト値は「不明」です。この属性で指定する言語情報は、ユーザエージェントが画面表示を制御する様々な局面で利用します。例えば、検索エンジンの補助、音声合成装置の補助、スペルチェッカや文法チェッカの補助などがあります。言語コードには、"ja":日本語、"en":英語、"en-US":アメリカ英語などがあります。
お気に入りに追加
script要素 : スクリプトの組み込み
スポンサードリンク