Aという画面に***.jsという外部ファイルにwindows.openのjavascriptを設定しています。
A→Bという画面遷移を行っているのですが、
B→Aに history.back(); にて戻る際にA画面にて入力した項目(例えばテキストボックスの値)がクリアされてしまいます。
ちなみにwindows.openのScriptを実行しない場合には項目のクリアは起こりません。
function helpopen() {
var AAA= window.open('URL', 'AAA','width=400,height=300,scrollbars=1,resizable=1');
}
上記のScriptをチェックしていたのですが、
window.open('URL', 'AAA');
とURLのみでもクリアの現象が起こってしまいます。
JavaScriptを使用した際にクリアが起こってしまう現象を回避する方法はありますでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
#1 の者ですが、とりあえず指摘の操作を行う最低限のソースを書いてみました。
test00a.htm
==============================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>Cash do not remain in a screen at the time of Javascript use.(Main)</title>
<div onclick="window.open('./test00c.htm');">WINDOW.OPEN</div>
<form action="./test00b.htm" name="NAMEFM"><div>
<input type="text" name="NAMAEIN">
<input type="submit" value="送信">
</div></form>
==============================
test00b.htm
==============================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>Cash do not remain in a screen at the time of Javascript use.(Back)</title>
<div onclick="history.back();">HISTORY.BACK</div>
==============================
test00c.htm
==============================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<title>Cash do not remain in a screen at the time of Javascript use.(Sub window)</title>
<div>Sub window</div>
==============================
以上でご提示の操作が行える最低限のファイルと思います。(文法としてもあっています。片っ端から省略しているので、ある意味不適切ですが、検証用という事で。)
で、上記でも現象は再現いたしますでしょうか?
当方では再現いたしません。
(消えずに残っています。)
これでも質問者側の環境ではクリアされるならば、
環境の違いも問題調査の要点となりますしが・・・。
(同一ブラウザでもいろいろ設定が違うだろうし・・・)
また、今回提示したソースでは再現しない(クリアされない)となれば、
質問者が未提示の部分がポイントと場所を絞る事が出来るのですがぁ・・・。
とにかく、とりあえず参考までに。
ありがとうございます。
このソースの場合は上手くいきました。
しかし、こちらの環境(ASPなのです)で実行してみたら
やはり消えてしまいます…。
拡張子をASPに変更しただけでkoutarou504さんのソースはいじってません。
(METAは少しいじりました。
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">←このように)
ASPだと消えてしまうのはなぜなのかまったくわかりません…。
No.1
- 回答日時:
あの~、大変申し訳ございませんが、
ご質問の状況が不明というか再現しないというか・・・。
もし B が A より windows.open にて開かれて遷移しているのなら、親子関係ですから戻るという概念はないはずだし・・・。
windows.open では別途 C が開かれているなら
そこで何を行われているかも関わるかもしれませんし、
なにより何を契機に open , 遷移が行われているのかも不明です。
とりあえず、当方で質問で考えられる状態を動作してみましたが、再現しませんでした。
OS : Win XP SP2
ブラウザ : IE6, NS7.1, OP8
OPEN のきっかけ : onclickイベントを採用
画面遷移 : onclickイベントを採用し location.href に代入
戻り方1 : 遷移先からブラウザの戻るを採用
戻り方2 : 遷移先からonclickイベントを採用し history.back(); で戻る
戻り方3 : OPENされた子側からonclickイベントを採用し window.opener.history.back(); で戻る
この回答への補足
ありがとうございます。
ちょっと状況が不明でした・・・申し訳ありません。
正しくはA,B,Cの3画面あります。
Aにはonclickイベント(window.open)にてCの画面を小窓で開く設定をしています。その際に引数をC画面に渡してます。
C画面では、Aからの引数を元にDB接続し、別の値をとってきます。C画面のonclickイベントにてAにあるテキストボックスβに値を設定後、C画面を閉じるというscriptを使用しています。
これが大体のおおまかな流れです。
まず、Scriptの動きを確かめる為に、引数も何もつけず、window.open('URL', 'AAA');だけのScriptにて動きを検証してみました
Aに存在するテキストボックスαに値入力
↓
Cのサブ画面を呼んでみる
↓
Cはブラウザの×ボタンにて閉じる(C側のScriptは動かさない)
↓
Aに戻り、submitにてB画面に遷移
↓
B画面からhistory.back(); にてA画面に戻る
↓
Aで入力したテキストボックスαの値がクリアされている
これが、今起きている現象です。
追記です。
B画面からAに戻る際のhistory.back(); 時に、実際AではC画面を開いているので、直前に開いたページ=Cになってしまい、Aの画面の値がクリアされてるんじゃないか、という考えもあるのですが、解決法が見つかりません・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[Java] Edgeでのアドレスバー非...
-
onclickでのページ内移動
-
同じページをブラウザで複数開...
-
ブラウザ Chromeを使っていて、...
-
Javascript使用時に画面にキャ...
-
window.close()?でエラー
-
リンククリックでウインドウの...
-
画面を閉じる(×ボタンやタスク...
-
Request.Params("xxx")で「+」...
-
window.open()で幅指定の際、ウ...
-
window.open("about:blank")
-
デジタル時計の時刻合わせの方...
-
マイページはどこを開くの
-
ウインドウを毎回同じ位置、大...
-
エクセルのシート上に別のシー...
-
Excelでワードアートや図を常に...
-
一定時間おきにアラームやポッ...
-
スクリプトって、何ですか?ど...
-
Outlookでこのような表示がされ...
-
Javascript_submit()完了後に処...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[Java] Edgeでのアドレスバー非...
-
同じページをブラウザで複数開...
-
window.open("about:blank")
-
画面を閉じる(×ボタンやタスク...
-
onclickでのページ内移動
-
呼び出されたページを閉じ、呼...
-
親ウインドのASPをリロードさせ...
-
リンククリックでウインドウの...
-
ブラウザ Chromeを使っていて、...
-
window.close()?でエラー
-
ホームページビルダーでウイン...
-
MM_openBrWindowとwindow.open
-
JavaScriptでWindowを開いてPDF...
-
サブウィンドウを常に最前面に...
-
Request.Params("xxx")で「+」...
-
alertの最前面表示
-
javascript ブックマークバーを...
-
WINDOWのstyleを変更する方法
-
閉じた後のwindow.closed検知
-
無限ループ
おすすめ情報