QA@IT

IE11ブラウザでのhistory.back()について

5619 PV

webアプリ(言語:Java)がIE11ブラウザ環境にて正常稼動するか、検証しています。
画面の表示設定として、以下のタグをJSPに記載しています↓

問題点は以下の通りです。
① システム利用者の登録画面にて、名前・電話番号・住所等を入力し、登録(更新)ボタンを押下。
② ある項目でバリデーションエラーとなり、エラー画面へ遷移。
③ エラー画面上の「戻る」ボタンにて、登録画面に戻る。(この時history.back()を使用)
④ ①〜③をもう一度繰り返す。
⑤ ①で入力した内容が全て消えてしまっている。

・エラー画面との遷移を二回繰り返すと、最初に入力した値が画面上から消えてしまいます。(バリデーションエラーとなり修正した項目は消えない)
・IE8環境だと、エラー画面との遷移を何度繰り返しても入力は消えません。
・以下を指定しても解決しませんでした。

良い解決策をご存じでしたら、ご教授頂きたく、宜しくお願い致します。

回答

1、<input type="text" name="ipt1" value="" />
2、<input type="text" name="ipt1"/>
こちらも同じ現象が起きました。解決策がまだわかりませんでしたが、上記1の場合は再現でき、デフォルト値value属性が指定されない2の場合は大丈夫そうです。
こちらで
<body onload="fix()">
function fix(){
var ipts = document.getElementByNames('input');
for(var i=0; i<ipts.length, ++i){
if(ipts[i].type == "text"){
ipts[i].value= ipts[i].value;
}
}
}
で暫定策として対応しましたが、良い方法をご存じでしたら、教えて頂きませんか?

  • 個人的には対症療法でない「良い解決策」はブラウザのキャッシュを当てにしないということだと思いますが、そのために Web アプリの根本的な修正までは無理なのでしょうか? -
ウォッチ

この質問への回答やコメントをメールでお知らせします。