knowledge base

マークアップ/フロントエンドエンジニアのWEB制作における備忘録です。平日はWEB屋、休日は社会人劇団の主宰・劇作家をしています。

Android 2.3で画面がフリーズする

iframeを使っていませんか

レガシーなIEと同じくらい不具合の多い旧式Androidデフォルトブラウザですが、まれにファーストビューのまま画面がフリーズしてしまうことがあります。

そのようなときはまず、iframeを使用していないか疑ってください。

iframeを使用していると、次のいずれかの条件でスクロールが固まってしまうそうです。

  • iframeそのものが、cssで非表示になっている。
  • iframeを包含する要素が、cssで非表示なっている。
  • iframeそのものが、JSによりロード時に非表示にされている。
  • iframeを包含する要素が、JSによりロード時に非表示にされている。

たとえば複数のiframeをボタン押下で表示切り替えするときなど、このバグが発現する格好の条件になってしまいます。

解決策は、display:noneやhide()を使用しないことです。

やりかたは様々ですが、非表示にする代わりにユーザーから見えない場所に配置する等すれば、このバグは解決できます。