2013-04-28 397 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); 
}