【问题标题】:Keydownevent in fullscreen with FullScreen API使用 FullScreen API 全屏显示 Keydownevent
【发布时间】:2012-11-23 08:16:02
【问题描述】:

我在 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);
}

【问题讨论】:

  • 如果您可以阻止用户这样做,那就太糟糕了。
  • 我知道,但我的客户有不同的想法。
  • 也许您可以将按键(但不是鼠标点击)窃取到 Flash 框架中。
  • 有没有机会在目标机器上安装额外的软件?那么就比较容易了。
  • 我正在开发 asp.net mvc 4 项目。

标签: javascript jquery firefox google-chrome fullscreen


【解决方案1】:

之所以会这样,是因为它是一种内置的安全方法,浏览器供应商已经对其进行了明确的硬编码,以防止您的客户想要做的事情是:阻止人们离开。

就我个人而言,我希望esc 可以用作一个按钮来调出全屏游戏的菜单(因为这是多年来一直在做的事情),但目前这不是一个选项。

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

【讨论】:

  • 现在,我得出了同样的结论。但是youtube(html5播放器)例如以某种方式做到了。用户将有权选择全屏和正常模式。通过按键退出全屏模式的能力打破了应用程序逻辑。
  • YouTube全屏的HTML5版本在哪里做呢? esc 对我来说很好,而我在 HTML5 窗口中全屏显示。
猜你喜欢
  • 1970-01-01
  • 2020-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多