= !JavaScript チュートリアル = == !JavaScript って何? == PC 上で動作する主要な Web ブラウザに必ずと言っていいほど搭載されているスクリプト言語です。 単体で動作する !JavaScript インタプリタも存在しますが、主な用途は基本的には Web アプリケーションのクライアントサイドプログラムとなります。 === クライアントサイドプログラムとは? === CGI がブラウザ (クライアント) からの要求を受けてサーバーサイドでプログラムを動作させる仕組みであるのに対し、ブラウザ上、すなわちクライアントサイドでプログラムを動作させる仕組みのことをこう呼んでいます。 元々は、サーバーとの通信を必要としない動作 (画面表示の動的な変化、等) を記述する目的で使われていましたが、 Ajax と呼ばれる通信機能により、最近ではページ読み込みの待ち時間によるストレスを感じさせない UI 作りや、Google Map に代表されるようなリッチな UI の実装などに大きく貢献するようになってきています。 == とりあえず使ってみよう == === どうやって使うの? === !JavaScript は HTML と一緒にブラウザに読み込ませて使います。従って、基本的には HTML ファイルの中に直接記述してしまいますが、別ファイルに !JavaScript のスクリプトファイル単体として記述することも可能です。 まずは、最も簡単な例から見てみましょう。以下のサンプルプログラムは、ブラウザ上に「hoge」と書かれたボタンが表示され、それをクリックすると、メッセージボックスに「hoge」と表示する、というものです。 {{{ hoge
}}} === 動かしてみる === 上記のサンプルプログラムをテキストエディタに記述したら、拡張子 .html で保存し、そのファイルを Web ブラウザ (IE、Firefox、Safari、Opera、etc...) にドラッグ&ドロップするなどして読み込ませれば動かせるはずです。 IE の場合、画面上部に警告メッセージの黄色い帯が表示されるかも知れませんが、その場合は帯の部分をクリックし、表示されるコンテキストメニューの「ブロックされているコンテンツを許可...」を選択してください。 === イベントハンドラ === 上記のサンプルの中で、 !JavaScript が用いられているのは、以下の部分です。 {{{ }}} 要素に onclick という属性が存在し、その値として、 !JavaScript によるプログラムが記述されています。 onclick 属性は、その要素がクリックされたときに、値に指定されたプログラムを実行せよ、という意味のものです。この手の属性は、他にも以下のようなものが存在します。(本当は他にももっといろいろ存在します…) * onmousemove ... その要素が表示されている箇所でマウスカーソルが動いたら、プログラムを実行する。 * onmousedown ... その要素が表示されている箇所にマウスカーソルが存在するときに、マウスのボタンが押し下げられたら、プログラムを実行する。 (onclick が押して放さないと認識されないのに対し、こちらは押しただけで認識される) * onmouseup ... その要素が表示されている箇所にマウスカーソルが存在するときに、マウスのボタンが放されたら、プログラムを実行する。 * onkeydown ... キーボードのキーが押されたら、プログラムを実行する。 * onkeyup ... キーボードのキーが放されたら、プログラムを実行する。 * onload ... HTML ファイルが読み込まれたら、プログラムを実行する。 * onfocus ... その要素にフォーカスが移ったら、プログラムを実行する。例えば、入力欄をクリックするなどしてカーソルが表示されるようになるタイミングで、その入力欄の 要素に onfocus 属性があれば、その値が実行される。 * onchange ... コンボボックス (
}}} さて、先ほどのプログラムと比べると、今回のプログラムはかなり複雑です。今はプログラムの内容は気にせず、プログラムが記述されている場所と、その雰囲気に注目してください。 先ほどと同様、今回も タグには onclick 属性が指定されています。 {{{ }}} しかし、そこに書かれているのは、 putHoge という名前の、恐らくは関数呼び出しに見える (後ろに丸かっこが付いているので) もののみが記述されています。 HTML ファイルの上の方に、なんだか見慣れない記述がありますね。以下の部分です。 {{{ }}} この、 }}} === !JavaScript のみを別ファイルに記述する ===
}}} そして、 hoge.js ファイルは以下のような内容となります。といっても、前のサンプルで