7

切换到全屏模式后(在 chrome 和 safari 上测试),我无法在文本输入中输入任何字母或数字,但我仍然可以输入特殊字符,但不能输入*¨%£简单字母......

代码非常简单:

HTML

<button type="button" id="fullScreen">LAUNCH FULLSCREEN</button>
<input type="text" /> 

JS

function launchFullScreen(element) {
  if(element.requestFullScreen) {
    element.requestFullScreen();
  } else if(element.mozRequestFullScreen) {
    element.mozRequestFullScreen();
  } else if(element.webkitRequestFullScreen) {
    element.webkitRequestFullScreen();
  }
}

document.getElementById("fullScreen").addEventListener("mousedown", function(){
  launchFullScreen(document.documentElement);
}, false);

正如 Jan Dvorak 所说,问题仅在使用 js 功能时出现,在使用浏览器内置全屏按钮/快捷方式时不会出现该错误

看看它在行动:

http://jsfiddle.net/QwqT7/show/

更新 2:

刚刚在 Firefox for mac 上测试过,全屏模式没有问题。似乎问题只是webkit。

4

2 回答 2

3

这不是一个完美的解决方案,但至少它可以让 Chrome 响应键盘命令,让 Safari 使用全屏模式,无需按键输入作为后备。

function launchFullScreen(element) {
  if(element.requestFullScreen) {
    element.requestFullScreen();
  } else if(element.mozRequestFullScreen) {
    element.mozRequestFullScreen();
  } else if(element.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)){
    element.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
  }
  setTimeout(function() {
    if (!document.webkitCurrentFullScreenElement && element.webkitRequestFullScreen()) {
      element.webkitRequestFullScreen();
    }
  },100);
}
于 2013-04-29T00:34:25.843 回答
2

Mozilla 笔记说:

出于安全原因,大多数键盘输入已在全屏模式下被阻止。但是,在 Google Chrome 中,您可以通过调用带有标志的方法来请求键盘支持...

于 2013-04-29T00:07:59.097 回答