r-hosono さんが書きました:
Firefox Quantumにアップグレードしてから、ホームページにiframeで埋め込みをしたカレンダーを操作中に
更新(リロード)をするとiframeで埋め込みをした部分が真っ白になってしまい何も表示されない状態になります。
以下にサンプルを用意しましたので、ご参照ください。
http://dotr.jp/iframe-test.htmlたしかにこちらでも同じ現象を確認いたしました。
サンプルを見ましたが、「iframeで埋め込んだカレンダー」というのは、SELECTTYPEというサイト(運営:株式会社セレクトタイプ)が提供する予約管理システムのフォームを利用されているということですね。
まず、iframe の src に指定されている
https://select-type.com/rsv/?id=X3dNtzmo63k&w_flg=1 をロケーションバーに打ち込んで動作を確認してみました。
ページ上の「<」「>」「週」ボタンなどをクリックすると、SELECTTYPEのサーバーのPHPへ要求をPOSTし、処理結果のページを生成して応答するという動きのようです。
ボタンをクリックするとロケーションバーの URL が、https://select-type.com/rsv/index.php#rsv に変わりますし、開発ツールのネットワークモニターでも確認できます。
ちなみに、ロケーションバーの表示が
https://select-type.com/rsv/index.php#rsv になった状態でF5を押すと、フォームデータを再送信することを警告する確認ダイアログが表示されます。
ここまでの動作はたいていのブラウザで一緒かと思います。
ちなみに余談ですが、キャンセルを選んだ場合、Firefox/Chrome はページはそのままですが、IE/Edge は先にページを破棄していてエラーページにしてしまうようです。さて、iframe-test.html の動作の話に戻りますが、他のバージョンで確認したところ、
- 57~ … iframe 内が空ドキュメントになる。
- 54~56 … 初期状態の現在のカレンダーが表示される。
- ~53 … iframe 内が空ドキュメントになる。
という結果となりました。
Firefox 56 と 57のF5リロード時を開発ツールのネットワークモニターで見ますと、56では
https://select-type.com/rsv/?id=X3dNtzmo63k&w_flg=1 へのGETリクエストが出ているのに対し、空ドキュメントになってる場合は
https://select-type.com/rsv/index.php#rsv への GETリクエストが出ていました。
つまり、iframe のsrcのURLをリクエストしてるか、iframe内ドキュメントの現在URLをリクエストしてるかという動作の違いがありました。
そして、index.php はPOSTを受け付けるものであって、GETリクエストを投げても処理できずに空ドキュメントを返してきてるのではないかと推測できます。
これを踏まえて、ピンと来たので試しにスーパーリロード(Ctrl+F5 または Shift+リロードボタン)してみたところ、少し待たされましたが現在のカレンダーを表示できました。とりあえず、親ページをリフレッシュ(ロケーションバーでEnter)するか、スーパーリロードで回避できることはわかりましたが、リロード時のiframe 内のフォームページに関する動作はバグとして報告していいんじゃないかと思います。
ただ、フォーム側の方もイレギュラーへの対策をしてもいい気はします。まあ、そういう要望する場合は有料になるでしょうけど。