HTML で JavaScript を使用しているページを多く見かけるようになりましたが、JavaScript は HTML のページ内で定義するだけでなく、別にスクリプト専用のファイルを作って置いて、これにリンクするという方法もあります。
どういうことかというと、自分のホームページで多用する JavaScript のルーチンを js ファイルに定義しておいて、これを各ページで参照するというやり方です。 JavaScript は基本的にはそれが定義されているページ内でしか実行されませんが、同じルーチンを複数のページで実行させたいと思うこと、ありますよね? そんなとき、各ページにいちいち同じルーチンを記述しなくても、js ファイルにリンクさせてやるだけで同一の機能を実行させることができます。
でも、js ファイルなんて知らない、という人も多いと思います。js ファイルとは何か?なんのことはない、通常のテキストファイルに JavaScript を記述して、これに .js という拡張子を付けて保存しただけのものです。 ちょうど HTML ファイルが、通常のテキストファイルに HTML のタグを書いて .htm または .html の拡張子を付けたものであるのと似ています。そしてルーチンを実行させたいページの HTML の </TITLE> と </HEAD> の間に <SCRIPT SRC="(ファイル名).js"></SCRIPT> を書き加えてやればいいのです。
js ファイルには JavaScript を裸のままで書きます。HTML 形式で書いてはいけません。JavaScript 以外のコメントを書きたいときは、コメントを /* 〜 */ で囲みます。コメントが1行で終わるものは行頭に // を入れるだけでOK。こんな感じです。
/* このファイルについて
ファイル名:なんとか.js ファイル
このファイルの著作権はすべて梅ちゃん堂に帰属します。このファイルにリンクされる場合、或いは、このファイルに記述されたスクリプトの一部または全部をコピーして他のホームページなど公開の場で転用される場合は必ずメール等にて著作権者たる梅ちゃん堂の許可を得て下さい。 Mail to : support@umechando.com *///Internet Explorer 用のリンク先
var IE="forIE.htm";//Netscape 用のリンク先
var NN="forNN.htm";//ユーザーのブラウザを判別する
- function appCheck() {
}
- Br = navigator.appName;
- if (Br == "Microsoft Internet Explorer") location = IE;
- else if (Br == "Netscape") location = NN;
リンク元のページでは、例えば <A HREF="JavaScript:appCheck()"> 次のページへ </A> と書いてやることでルーチンが実行されるという仕掛けです。
時間に応じて違ったメッセージを表示するとか、ステータスバーやテキストボックスにメッセージを流すとかいった(最近よくある)ルーチンを使う場合、もしページによって違ったメッセージを使いたいのであれば、メッセージを入れる変数の部分だけそのページのスクリプト部分に var msg="(何とやら)"; と代入し、関数部分だけ js ファイルから呼び出してやればいいわけです。
js ファイルを使う利点は、1つのルーチンを複数ページで共用できるだけでなく、1つの js ファイルの中に多用するルーチンを複数記述しておける点です。パワーユーザーなら、自分が定義したルーチンを js ファイルの中にまとめておいて、DLL のように必要に応じて呼び出すという使い方ができます。
ただ注意すべきは、js ファイルにリンクする方法は Netscape 2.0 では使えないという点です。Netscape 3.0 以上、Intenet Explorer 3.0 以上で動作確認しています。