プロが教えるわが家の防犯対策術!

現在JavaScriptのonLoad,onUnloadを使用してCookieの操作を行うためのプログラムを作成しているのですが、うまくいかず困っています。

詳細な内容ですが、
ページを開くと、Cookieに保存しておいた文章をtext部分に読み込み、
ページを閉じると、text部分に記述してある内容をCookieに自動で保存させるというものです。

下記の内容で処理を行っているのですが、onLoadもonUnloadも行われてはいないようです。
まだJavaScriptを勉強し始めたばかりで無知なため、まったく的外れなことを行っているのかもしれません。
よろしければ解説をお願い致します。


<head>
<SCRIPT LANGUAGE="JavaScript">
<!--
// --==*==-- --==*==-- --==*==-- --==*==-- --==*==--
// クッキーへの書き込み
//   引数:kword=キーワード  kdata=データ  kday=保存期間(日数)
//   返却値:なし
// --==*==-- --==*==-- --==*==-- --==*==-- --==*==--
function CookieWrite(kword, kdata, kday)
{
if(!navigator.cookieEnabled){ // クッキーが利用可能かどうか
alert(";クッキーへの書き込みができません");
return;
}
sday = new Date();
sday.setTime(sday.getTime() + (kday * 1000 * 60 * 60 * 24));
s2day = sday.toGMTString();
document.cookie = kword + "=" + escape(kdata) + ";expires=" + s2day;
}
// --==*==-- --==*==-- --==*==-- --==*==-- --==*==--
// クッキーから読み込み
//   引数:kword=キーワード
//   返却値:データ
// --==*==-- --==*==-- --==*==-- --==*==-- --==*==--
function CookieRead(kword)
{
if(typeof(kword) == "undefined")  // キーワードなし
return ""; // 何もしないで戻る
kword = kword + "=";
kdata = "";
scookie = document.cookie + ";";    // クッキー情報を読み込む
start = scookie.indexOf(kword);  // キーワードを検索
if (start != -1){ // キーワードと一致するものあり
end = scookie.indexOf(";", start); // 情報の末尾位置を検索
kdata = unescape(scookie.substring(start + kword.length, end)); // データ取り出し
}
return kdata;
}
-->
</SCRIPT>
</head>

<body onLoad='text1.value = CookieRead("cookie")' onUnload='CookieWrite("cookie",text1.value,7)'>


<textarea name="text1"></textarea>


</body>

A 回答 (2件)

nameで要素を取得しようとしているみたいですが、そこで取れていないのでは? > text1.value



文書構造から取得するか、idをふってdocument.getElementById()で取得するとか…
    • good
    • 0
この回答へのお礼

textにidを振り、document.getElementById()を使用することで予定通り動くようになりました!!
onclickの際はnameでもうまくいったのですが、onLoadの場合はダメなんですね。

本当に助かりました。ありがとうございます!!

お礼日時:2010/05/12 18:57

WinXPとIE7ではちゃんと動作していますよ。

    • good
    • 0
この回答へのお礼

本当ですか!?
私のPCはWin7だからかなりませんでした・・。
ありがとうございます!

お礼日時:2010/05/12 18:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!