コフス技術ブログ

Firefoxでは`Document.readyState`が仕様には存在しない`uninitialized`を示す事がある

documentの読み込み状態はDocument.readyStateで取得できますが、Firefoxでは以下仕様には存在しないuninitializedを示す事があります。

  • loading: ドキュメントを読み込み中
  • interactive: ドキュメントは読み込み完了しているが、まだ全てのリソースは読み込み中
  • complete: 全てのドキュメントの読み込みが完了

MDN: https://developer.mozilla.org/ja/docs/Web/API/Document/readyState

iframeの初期化の際にFirefoxだけ何故か挙動が安定しないという事があり、原因を調べていたところreadyStateに見たこと無い文字列が入っていた事から何だこれは?となりました。

ざっくり調べる限りでは基本的にはFirefoxのバグのようで、Bugzillaでも起票されていました。
https://bugzilla.mozilla.org/show_bug.cgi?id=1627844

どうやら歴史的な理由により古いFirefoxではuninitializedを示す事があるとのことのようでしたが、ただ最新のFirefoxでもuninitializedを示す事があるようです。
iframeなどドキュメントの初期化の際にはまぁまぁ影響があるので、completeを示すまでポーリングして完全に読み込まれたか厳密に確認する必要がありそうです。