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

2011.09.12

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

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

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

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

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

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

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

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

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

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

HTML / CSS」カテゴリの記事

コメント

コメントを書く

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

トラックバック

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

2019年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

銀の弾丸

無料ブログはココログ

他のアカウント