ブログ
IEでhistory.backで戻るとフォームの内容が消えるバグ対応
2014.01.29
Android開発が久々すぎてテンパッてる状態のシステム部中村です。
昔からAndroidアプリの開発は、Verの違いで作り方と仕様が色々変わったり、機種によって違いがあったり、エクリプス上でのGUIの作りこみがわかりにくいなどであまり手を出したくなったのですが、お仕事なので、がんばってます。
といいながらAndroid開発で詰まったので、ブログを書くことで気分転換!!
さて、本日お問合せフォームの新設を病院チームからお願いされたので、ささっと片付けるつもりが、
デバック作業中に、なぜかIEでhistory.back()を使ってページ繊維すると(戻る)と入力されていたフォームが空になるという症状を発見。
よくよく調べてみるとIEのタブブラウザー化してから良く出る症状のようでした。
HTMLのキャッシュ設定を正しく指定していないと、空白になるようです。
症状の発生に関しては
1:inputフォームに値を入れる
2:submit で次の画面へ移動する
3:history.back()で前のページに戻る
結果:入力した内容が消えて空になっている
という流れなのですが、 FireFoxやchorome では発生しない現象なので、見落としやすい落とし穴です。
対処方法は
メタタグに
<meta content="86400" http-equiv="Expires" >
このタグをいれて明示的にキャッシュさせてやれば、OKです。
これで、症状が改善されました。
history.backを使わなければいいのですが、どうしても使用する際は症状が現れる前にタグを打っておくことにしておきます。