フルスクリーンの解除方法について、JavaScriptでよく発生するエラーの解決方法を解説します。

フルスクリーン解除の基本的な使い方

フルスクリーンを解除するには、`document.exitFullscreen()`メソッドを使用します。

document.exitFullscreen();

ただし、ブラウザの互換性を考慮する必要があります。各ブラウザ固有のメソッドを含めた実装例を紹介します。

function exitFullScreen() {
  if (document.exitFullscreen) {
    document.exitFullscreen();
  } else if (document.webkitExitFullscreen) {
    document.webkitExitFullscreen();
  } else if (document.mozCancelFullScreen) {
    document.mozCancelFullScreen();
  } else if (document.msExitFullscreen) {
    document.msExitFullscreen();
  }
}

よくあるエラーと解決策

エラー1: TypeError: document.exitFullscreen is not a function

このエラーは、ブラウザがフルスクリーンAPIをサポートしていない場合に発生します。

解決策:

if (document.exitFullscreen || document.webkitExitFullscreen || 
    document.mozCancelFullScreen || document.msExitFullscreen) {
  exitFullScreen();
} else {
  console.log('フルスクリーンAPIがサポートされていません');
}

エラー2: Failed to execute 'exitFullscreen' on 'Document'

このエラーは、要素がフルスクリーンモードでない状態で解除を試みた場合に発生します。

解決策:

function safeExitFullscreen() {
  if (document.fullscreenElement) {
    exitFullScreen();
  }
}

実践的な実装例

フルスクリーンの切り替えを行うボタンの実装例です。

const toggleButton = document.getElementById('toggleFullscreen');

toggleButton.addEventListener('click', () => {
  if (document.fullscreenElement) {
    exitFullScreen();
  } else {
    document.documentElement.requestFullscreen();
  }
});

フルスクリーン状態の監視

フルスクリーンの状態変更を監視する方法も紹介します。

document.addEventListener('fullscreenchange', () => {
  if (document.fullscreenElement) {
    console.log('フルスクリーンモードに入りました');
  } else {
    console.log('フルスクリーンモードを終了しました');
  }
});

ブラウザ対応状況

フルスクリーンAPIは現代の主要なブラウザで広くサポートされています:

  • Chrome 15+
  • Firefox 9+
  • Safari 5.1+
  • Edge 12+
  • Internet Explorer 11+

まとめ

フルスクリーン解除の実装では、以下の点に注意が必要です:

  • ブラウザの互換性への対応
  • フルスクリーン状態のチェック
  • エラーハンドリング

適切なエラー処理と互換性対応を行うことで、安定したフルスクリーン機能を実装できます。