« 週末は呑んで由 | トップページ | 十六夜(いざよい) »

2011.09.12

[Firefox6]フォームの隠し項目に中途半端なキャッシュが効いてる?

Firefoxで、form内の隠し項目(input type="hidden")にjavascriptで値を設定し、ページを再読み込みするとあやしい動き。

 

フォームの隠し項目に、「とある値」を保持しておいて、ajaxでこの値にまつわる情報をサーバーから取り出してレンダリングしている。しかし、隠し項目を書き換えた後に、ページを再読み込みすると、サーバーが吐き出した値が無視され、書き換え後の値でレンダリングされてしまうのだ。

 

これだけだと、「ついF5押しちゃったよ編集内容消えちゃった」てなよくある状況には便利な機能に思えるのだけど、複数の隠し項目を書き換えてから再読み込みした場合には、なぜか最初のひとつだけが値を保持していて、それ以外のはサーバーが吐き出した値になってる。

 

深く検証していないので、Firefoxの不具合かどうかはわからないけど、少なくともIE9(ただしIE8の互換モード)ではこの現象が発生しなかった。(と思う)

 

で、対処方法。海外サイトで「ページのonload(またはこれに類するタイミング)で(出来れば数ミリ秒ほどのタイマー処理にて)フォームをリセット( Form.reset() )してやりゃあいいんだぜ!」という情報を見つけたが、これがまったく上手くいかずxxx。

 

結局思案の末、ページのonload(またはこれに類するタイミング)で、javascriptで値を代入するというバカバカしいほど単純な方法で成功。

 

なんだそりゃってな感じでスマン・・・

« 週末は呑んで由 | トップページ | 十六夜(いざよい) »

プログラミング」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

« 週末は呑んで由 | トップページ | 十六夜(いざよい) »

2020年5月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
フォト

Google AdSense

銀の弾丸

無料ブログはココログ

他のアカウント