2013-04-28 12 views
5

Po przełączeniu na tryb pełnoekranowy (testowany na chrome i safari), nie mogę wpisywać żadnych liter ani cyfr w tekstach, ale nadal mogę Wprowadzanie znaków specjalnych jak *¨%£ ale bez prostych liter ...Nie można wpisywać żadnych liter ani cyfr w tekstach w trybie pełnoekranowym w przeglądarkach Webkit

Kod jest naprawdę prosta:

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

Jak wspomniano Jan Dvorak, problem pojawia się tylko przy korzystaniu z funkcji js, błąd nie pojawia się w przypadku korzystania z wbudowanym przeglądarka przycisk pełnym ekranie/skrót

Zobacz go w akcji:

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

UPDATE 2:

Wystarczy testowane na Firefox dla komputerów Mac, żadnych problemów w trybie pełnoekranowym. Wygląda na to, że problemem jest tylko webkit.

+1

potwierdzona, dziwna. Wygląda jak błąd. http://jsfiddle.net/QwqT7/show/ –

+0

Dzieje się tak tylko wtedy, gdy użyję przycisku, aby przejść do trybu pełnoekranowego. Działa poprawnie podczas robienia 'F11' –

+0

masz rację, zaktualizuję pytanie i dodaję jsfiddle, dzięki – Julian

Odpowiedz

2

Mozilla note mówi:

Ze względów bezpieczeństwa większość wejścia klawiatury zostały zablokowane w trybie pełnoekranowym. Jednak w Google Chrome możesz poprosić o wsparcie klawiatury, wywołując metodę z flagą ...

+1

Dzięki temu pomogło mi rozwiązać przynajmniej problem z Chrome. Wysłałem swój kod, to może pomóc komuś innemu. – Julian

3

To nie jest idealne rozwiązanie, ale przynajmniej pozwoli Chrome reagować na polecenia klawiatury i pozwolić przeglądarce Safari korzystać z trybu pełnoekranowego tryb bez wejść kluczowych jako awaryjny.

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