WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:history.back()の動きについて

みかん [WriteDate : Mon May 14 14:02:26 2001]

こんにちは、みかんと申します。

JavaScriptの「history.back()」の動きについて教えていただきたい
ことがございます。

HTMLで入力FORMを作成し、入力した内容をJavaScriptでチェックして
問題なければ、次のベージへSubmitさせています。
次のベージにはhistory.back()を使用した戻るボタンがあるのですが、
この戻るボタンをクリックして前のページに戻っても、入力フォーム
に入力したはずの内容が消えてしまいます。

何か問題があるのでしょうか?


ちゃいぱ [WriteDate : Mon May 14 18:32:49 2001]

ちなみに、history.back()でなく、ブラウザの戻るでは、どうなりますか?


みかん [WriteDate : Mon May 14 20:16:22 2001]

ブラウザの戻るボタンでも情報は消えてしまいます。(IE5.0)
よろしくお願いします(>_<)


ちゃいぱ [WriteDate : Mon May 14 20:32:58 2001]

通常は、このようなことはありません。
>JavaScriptでチェックして
が、あやしい気がしてきました。
そのページを公開してみてください。


みかん [WriteDate : Tue May 15 10:21:02 2001]

> そのページを公開してみてください。

申し訳ございません、イントラのWebサイトなので
公開というのはできないのですが、HTMLソースでもJavaScriotだけ
でも500ステップ以上あって長いです。

多分ココがいけないのかなという部分を上げてみます。

A.【history.back()しても入力内容が消えないもの】

@上の方でチェックしていったファンクションが全て
 trueになった場合に、確認ダイアログを出す。

function submit_chk () {
   if ((timecheck () == true)   &&
       (cancelcheck () == true)  &&
       (chuicheck () == true)  &&
       (kikakecheck () == true)  
      ) {
       confirm_submit ();
   };
}

A確認のダイアログを出す。
function confirm_submit (){
   var tmp = confirm ("実行します。よろしいですか?")
   if (tmp == true) {
       document.item.submit ();
   };
}


B.【history.back()すると、入力した値が消えてしまうもの】
@上の方でチェックしていったファンクションが全て
 trueになった場合すぐにsubmitする。

function submit_chk () {
   if ((timecheck () == true)   &&
       (cancelcheck () == true)  &&
       (chuicheck () == true)  &&
       (kikakecheck () == true)  
      ) {
       document.item.submit ()
   };
}


つまり何が言いたいかというと、フォームへの入力後に実行BUTTON
をクリックした後に、『実行します。よろしいですか?』という
ダイアログを出すか出さないかで動きが全然変わってしまうという
ことです。ダイアログを出すものはhistory.back()してもブラウザ
の戻るボタンをクリックしても入力した内容が表示されていますが、
ダイアログを出さない方は、消えてしまっています。

なのでsubmitの方法がわるいのかな?と思っている次第です。
ちょっと謎です。

よろしくお願いしますm>_<m



Nobu3 [MAIL] [URL] [WriteDate : Tue May 15 11:34:13 2001]

まず基本。丸付き数字は嫌われる…。

それは両方とも、同じイベントを使ってますか?(onsubmitかonclickくらい?)単純な疑問。

ここから案。
確認しない方は「onclick」で戻り値を見て、HTML的(?)に送信してみたら?試してません。
<input type="submit" value="送信" onclick="return submit_chk()">

あと、関数の後ろの「()」の前に空白があったり、(命令文として)行末の「;(セミコロン)」が抜けてたりしてます。
ブラウザ限定ということでやってるのでしょうが、他所では通用しないかもしれませんので気をつけましょう。将来のため。


TNN [WriteDate : Tue May 15 12:38:46 2001]

Internet Explorer 5.xでは、文書を移動するとフォームに記入された
内容が消えます。多分、IE5の仕様です。

フォームに記入された内容をブラウザが保持しなければならない、
といった規定はないみたいですので、IE5の挙動も不正だとは
断言できません。


みかん [WriteDate : Tue May 15 21:53:51 2001]

Nobu3さん、TNNさんご回答ありがとうございます。

ちょっと、問題の切り分けが出来てきました。

入力フォームに入力する手間を省くために、あるボタンをクリック
すると、キーワード一覧を表示したサブウィンドウが開きます、
キーワードのハイパーリンクをクリックすると、キーワードに
関連する情報が入力フォーム内に自動で入力されるといったものです。

この、ボタンを使用して、実行ボタンをクリックした後に
戻るボタンをクリックすると、入力したはずの情報が消えて
しまいます。全て手入力した場合は、戻るボタンを使用しても
消えてしまうということはありません。

こんな感じでやっています。

function kaisya_openwin(p1, p2){
var loc;
w_H = p1;
w_W = p2;
send_tgt1 = document.item.p_kana;
send_tgt2 = document.item.p_kaisya;
send_tgt3 = document.item.p_busyo;
send_tgt4 = document.item.p_mousikomi;
send_tgt5 = document.item.p_riyousya;
send_tgt6 = document.item.p_jusyo;
send_tgt7 = document.item.p_tel;
send_tgt8 = document.item.p_fax;
send_tgt9 = document.item.p_email;
send_tgt10 = document.item.p_url;
send_tgt11 = document.item.p_ryakusyou;
loc="fms_com.mr_subwin_kaisya";
var resultWindow = window.open (loc,"Subwin","scrollbars=yes,resizable=1,toolbar=1,nemubar=1,height=" + p1 + ",width=" + p2 );
}

中略

<input type="button" name="F_SetRosen10" value="設定" onclick="kaisya_openwin(450,700)">

です。この設定ボタンをクリックするとサブウィンドウが開き
ます。『send_tgt』ってやつがだめなんでしょうか?

何かお気づきの点がございましたら、ご教授お願いします。


みかん [WriteDate : Tue May 15 21:54:47 2001]

Nobu3さん、TNNさんご回答ありがとうございます。

ちょっと、問題の切り分けが出来てきました。

入力フォームに入力する手間を省くために、あるボタンをクリック
すると、キーワード一覧を表示したサブウィンドウが開きます、
キーワードのハイパーリンクをクリックすると、キーワードに
関連する情報が入力フォーム内に自動で入力されるといったものです。

この、ボタンを使用して、実行ボタンをクリックした後に
戻るボタンをクリックすると、入力したはずの情報が消えて
しまいます。全て手入力した場合は、戻るボタンを使用しても
消えてしまうということはありません。

こんな感じでやっています。

function kaisya_openwin(p1, p2){
var loc;
w_H = p1;
w_W = p2;
send_tgt1 = document.item.p_kana;
send_tgt2 = document.item.p_kaisya;
send_tgt3 = document.item.p_busyo;
send_tgt4 = document.item.p_mousikomi;
send_tgt5 = document.item.p_riyousya;
send_tgt6 = document.item.p_jusyo;
send_tgt7 = document.item.p_tel;
send_tgt8 = document.item.p_fax;
send_tgt9 = document.item.p_email;
send_tgt10 = document.item.p_url;
send_tgt11 = document.item.p_ryakusyou;
loc="fms_com.mr_subwin_kaisya";
var resultWindow = window.open (loc,"Subwin","scrollbars=yes,resizable=1,toolbar=1,nemubar=1,height=" + p1 + ",width=" + p2 );
}

中略

<input type="button" name="F_SetRosen10" value="設定" onclick="kaisya_openwin(450,700)">

です。この設定ボタンをクリックするとサブウィンドウが開き
ます。『send_tgt』ってやつがだめなんでしょうか?

何かお気づきの点がございましたら、ご教授お願いします。


みかん [WriteDate : Tue May 15 21:56:08 2001]

ごめんなさい、2回送信してしまいました・・・

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]
ChaichanPAPA's World