3

我在 chrome 和 firefox 中使用 JavaScript FullScreen API 和 jQuery。我想停止 keydownevent 冒泡,因为我不希望该用户使用热键(F11 和 Ecs)离开全屏模式。但是chrome中的回调不会调用,而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可以用作一个按钮来调出全屏游戏的菜单(因为这是多年来所做的事情),但目前这不是一个选项。

当然,你可以听退出全屏,然后调出游戏菜单(这很奇怪),但除此之外,联盟营销人员只会在全页广告上塞满你,让它们全屏,然后不提供退出按钮,除了关闭浏览器(如果不使用键盘,您将无法做到这一点,全屏也可以阻止)。

于 2012-12-05T14:36:57.460 回答