2013-04-28 396 views
5

切换到全屏模式(在Chrome和Safari上测试)后,我无法在文本输入中键入任何字母或数字,但我仍然可以输入特殊字符,如*¨%£,但没有简单的字母...无法在全屏模式下输入任何字母或数字在Webkit浏览器中全屏模式下

的代码是非常简单的:

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); 

正如扬德沃夏克提到的,使用js函数的时候才出现的问题,使用浏览器内置的全屏按钮/快捷方式时,错误不会出现

看到它在行动:

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

更新2:

在Firefox刚刚测试过的Mac,在全屏模式下没有任何问题。 这似乎只是webkit的问题。

+1

确认,奇怪。看起来像一个错误。 http://jsfiddle.net/QwqT7/show/ – 2013-04-28 19:35:23

+0

它只会发生,如果我使用按钮去全屏,但。它正常工作时,'F11' – 2013-04-28 19:36:51

+0

你是对的,我会更新的问题,并添加您的jsfiddle,谢谢 – Julian 2013-04-28 19:40:06

回答

2

Mozilla note说:

出于安全原因,大多数键盘输入都被挡在了全屏模式。然而,谷歌浏览器,你可以通过调用带有标志的方法请求键盘支持...

+1

感谢它帮助我至少在Chrome中解决了这个问题。我发布了我的代码,它可以帮助别人。 – Julian 2013-04-29 00:35:23

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