2016-12-06 17 views
0

フルスクリーンのWeb APIはフルスクリーン要素オブジェクトを許可します。しかし、 "Esc"キーを使用してフルスクリーンを無効にすることができます。私は、 "Esc"キーが押されたときにイベントを使用してデフォルトメソッドを回避しようとしました。それでもフルスクリーンは無効になります。私は自分のウェブページをフルスクリーンモードで走らせたいと思っています。それはオンライン試験のアプリケーションなので、ユーザーはフルスクリーンを終了して新しいタブや他のアプリケーションを開くことを望んでいません。ここでフルスクリーンモードで強制的にWebページを実行する

はコードのサンプルです:

function openAppInFullScreen() { 
    let 
    rootEl = window.document.documentElement, 
    rfs = rootEl.requestFullScreen 
      || rootEl.msRequestFullscreen 
      || rootEl.webkitRequestFullScreen 
      || rootEl.mozRequestFullScreen; 
    rfs.call(rootEl); 
} 

function disableOutofAppActions(event) { 
    let 
    isF5orF11key = (event.keyCode === 116 || event.keyCode === 122), 
    isCtrlKeyOrEsc = event.ctrlKey || (event.keyCode === 27); 


    if (isF5orF11key || isCtrlKeyOrEsc) { 
    /* Block the event */ 
    event.preventDefault() 
    /*Show an warning alert*/ 
    } 
} 

window.addEventListener("click", openAppInFullScreen); 
window.addEventListener("keydown", disableOutofAppActions) 
+0

制限を追加します。これが可能であれば、あなたがこれをしても、実際にあなたのユーザー –

+0

を捕まえることができます(私はあなたができないと確信しています。ユーザーの選択肢です)。alt-tabとにかく窓の間を移動するために、そのOSにショートカットが何であれ)。または、スーパー(Windows)キーを押して、OSメニューを呼び出します。このアプリが制御された状況で既知のマシンでのみ実行される場合は、マシンにキオスクスタイルのOSをインストールして、他のアプリ/サービスへのアクセスを制限することを検討してください。 – ADyson

+0

Webアプリではなく、ブラウザの設定でこれを解決する必要があります。 – Quentin

答えて

0

私は、現在のブラウザのタブがアクティブか非合焦であれば、私たちは検出することができます可視性のAPIを使用して、状況のこの種を扱いますよ。したがって、ユーザーがアプリケーションを表示していない場合や、他のアプリケーションを開こうとすると、イベントが発生することがあります。このチェックアウトの詳細については、この回答を参照してください。 https://stackoverflow.com/a/1060034/6610070

また、jQueryのぼかし方法は、少なくとも私のために機能しました。 簡潔にするために私はイベントコールバック関数のコードを追加しませんでした。

$(window).onblur(alertOutOfAppAction) 
$(window).onfocus(removeOutOfAppActionAlert) 
関連する問題