3

chrome と firefox で JavaScript FullScreen API と jQuery を使用しています。ユーザーがホットキー (F11 と Ecs) を使用してフルスクリーン モードを終了したくないため、keydownevent のバブリングを停止したいと考えています。しかし、クロムのコールバックは呼び出されず、Firefox のコールバックは F11 を呼び出しますが、Esc は呼び出しません。なぜこうなった?

$(document).bind({
    'keydown': function (e) {
        alert('It works!');
        if (e.which == 122 || e.which == 27) {
             alert('F11 or Esc');
             return false;
        }
});

var docElm = document.getElementById('gallery');
if (docElm.mozRequestFullScreen) {
     docElm.mozRequestFullScreen();
}
else if (docElm.webkitRequestFullScreen) {
     docElm.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
}
4

1 に答える 1

0

これは組み込みのセキュリティ メソッドであり、ブラウザ ベンダーはクライアントがやりたいことを正確に防ぐ目的で明示的にハードコーディングしたためです。

esc個人的には、フルスクリーン ゲームのメニューを表示するためのボタンとして使用できることを望みますが (それが何年も前から行われてきたことです)、現在のところ、それはオプションではありません。

もちろん、exit-fullscreen をリッスンしてからゲーム メニューを表示することもできますが (これは奇妙です)、そうしないと、アフィリエイト マーケティング担当者がフルページ広告を詰め込んでフルスクリーンにし、ブラウザを閉じることを除いて、終了ボタンを提供しません(フルスクリーンでも防止できるキーボードを使用せずにはできませんでした)。

于 2012-12-05T14:36:57.460 に答える