|
|
12/22(Sun) 16:15
jsファイルの活用
JavaScript は基本的にはそれが定義されているページ内でしか実行されませんが、同じルーチンを複数のページで実行させたいと思うこと、ありますよね?
そんなとき、各ページにいちいち同じルーチンを記述しなくても、js ファイルにリンクさせてやるだけで同一の機能を実行させることができます。その方法は
- 自分のホームページで多用する JavaScript のルーチンを js ファイルに定義
- この js ファイルを各ページから参照する
というやり方です。
注意する点は、Netscape、Intenet Explorer とも3.0 以上でないとjsファイルを使えないことです。私のページの最近のアクセス解析では9割以上の方が3.0 以上ですのでそろそろ私も使おうかと考えている所です。
■ 具体的方法
ここでは、クッキー処理を例に説明しますが、複数のページで実行させたいスクリプトであれば何にでも適用できます。またファイル名も○○○.jsと任意の名前を付けることができます。
- js ファイルとは、通常のテキストファイルに JavaScript を記述して、これに .js という拡張子を付けたファイルです。
- そしてルーチンを実行させたいページの HTML の </TITLE> と </HEAD> の間に
<SCRIPT LANGUAGE="JavaScript" SRC="ファイル名.js"></SCRIPT> を書き加えます。
■ cookie.jsファイルの作成
- 「訪問回数、初訪問日、前回訪問日(クッキーの基礎)」を導入されてる方は
- 同時に「クッキーデータの修復」も導入されてると思います。
この両方のファイルには同じクッキー関数が書かれてますので、このクッキー関数の部分を jsファイルにします。方法は、
- 両ファイルからクッキー関数の部分を削除します。
- 下のスクリプト(削除したものと同じ)をエディタで新規ファイルに「貼り付け」てcookie.jsというファイル名で保存します。
この時
<SCRIPT LANGUAGE="JavaScript">
<!--
および
//-->
</SCRIPT>
は記述しませんので注意してください。JavaScriptの本体部分のみ記述します。
下がcookie.jsファイルの内容です。
// クッキー関数(この関数は変更しないで下さい)
function setCookieData(data) // キーと消去日の設定
{
var expdate = new Date ();
expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 30 * 1));
SetCookie (cookie_name, data, expdate);
}
function SetCookie (name,value) // 書き込み
{
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + value +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
function GetCookie (name) // 検索
{
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen)
{
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function getCookieVal (offset) // 読み込み
{
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset,endstr));
}
function DeleteCookie (name) // 消去
{
var exp =new Date();
exp.setTime(exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
// クッキー関数終了
|
■ cookie.jsファイルの参照
- 「訪問回数、初訪問日、前回訪問日(クッキーの基礎)」
- 「クッキーデータの修復」
の </TITLE> と </HEAD> の間に
<SCRIPT LANGUAGE="JavaScript" SRC="cookie.js"></SCRIPT> を書き加えます。
|
|