iframeを動的生成しコンテンツ(form)を切り替える、というようなことをしていたところ、一部のブラウザで思ったように動作せずにハマってしまったので、備忘のためにブログに起こしておきます。

iframeを動的生成した際、読み込むsrcのURLと表示が一致しない

こちらの現象はIE8とChromeで確認しています。
遷移前の選択順序を覚えているかのような動作になります。

遷移前は意図通り表示されるが…

遷移後はiframeのsrcと表示されるコンテンツが一致しない

  • IEの場合:iframeを動的生成した後、リロードをして、再度iframeを動的生成(遷移前と選択順序を変更)する。
  • Chromeの場合:iframeを動的生成した後、ページ遷移して戻るボタンで戻り、再度iframeを動的生成(遷移前と選択順序を変更)する。

iframeを動的に生成した後、強制的にリロードをかけることで、狙い通りの動作となりました。

こちらのブログを参考にさせていただきました。

iframe内のformをtarget=”_blank”で開くと2度目は動作しない

こちらの現象はWebkit(Chrome・Safari5)で確認しています。

formのsubmitで実行画面をtarget=”_blank”で新規窓を開くと、2度目はsubmitをしても新規窓が開きません。

formのactionのURLが変更されていれば、2度目でも新規窓が開くようです。

こちらのブログを参考にさせていただきました。


IEは今に始まったことではないのでどうでもいいのですが、Chromeで同じようなことが起こるとは思ってもいませんでした。
しかも、後者に関しては仕様と思われる上に、あまりスマートな解決方法ではありませんので、非常に不便です。

ブラウザ側での改善を切に望みます。