2011-10-20 4 views
62

Zgodnie z this article Google Chrome 15 ma pełnoekranowe API JavaScript.Chrome Pełny ekran API

Próbowałem sprawić, żeby działało, ale się nie udało. Szukałem też oficjalnej dokumentacji na próżno.

Jak wygląda pełnoekranowe API JavaScript?

+0

ta jest proponowana specyfikacja który ma być realizowany: https://wiki.mozilla.org/Gecko:FullScreenAPI#Proposed_Specification. – pimvdb

+0

Nie udało mi się też sprawić, by działało, chociaż wdrożyli to w WebKit: https://bugs.webkit.org/show_bug.cgi?id=43099. To jest błąd Chromium, który może być trafny: http://code.google.com/p/chromium/issues/detail?id=73923. – pimvdb

+2

Możesz uruchomić go w "trybie kiosku" (pełny ekran, bez kontroli) w następujący sposób: chrome.exe -kiosk http: // ... –

Odpowiedz

122

API działa tylko podczas interakcji z użytkownikiem, a więc nie może być stosowany złośliwie. Spróbuj następującego kodu:

addEventListener("click", function() { 
    var el = document.documentElement, 
     rfs = el.requestFullscreen 
     || el.webkitRequestFullScreen 
     || el.mozRequestFullScreen 
     || el.msRequestFullscreen 
    ; 

    rfs.call(el); 
}); 
+2

Jak definiuje się "interakcje użytkownika"? – Randomblue

+0

Większość 'UIEvent's i' MouseEvent's, takich jak 'click' i' keydown', itp. –

+0

To działa, aby przejść do pełnego ekranu dla mnie, ale kiedy użytkownik przechodzi do następnej strony w mojej witrynie, kończy pełny ekran. Czy istnieje sposób, aby tego uniknąć? – alex9311

6

Poniższy Test działa w Chrome 16 (dev oddziału) na X86 i Chrome 15 na Mac OSX Lion

http://html5-demos.appspot.com/static/fullscreen.html

+0

+1 Działa również na Chrome 15 (stabilny kanał). – pimvdb

+0

Po wpisaniu "enterFullScreen()" z konsoli, ekran nie przechodzi w tryb pełnoekranowy. – Randomblue

+3

Musisz wywołać requestFullScreen() na elemencie, który chcesz wyświetlić w trybie pełnoekranowym. Nie ma sposobu, aby po prostu wskoczyć do trybu. Oto kolejny doskonały opis interfejsu API FullScreen autorstwa Johna Dyera z pełnym przykładem: http://johndyer.name/native-fullscreen-javascript-api-plus-jquery-plugin/ –

32

Zrobiłem prosty wrapper dla pełnoekranowego interfejsu API, zwany screenfull.js, aby wygładzić bałagan prefiksu i naprawić pewne niespójności w różnych implementacjach. Sprawdź numer demo, aby zobaczyć, jak działa interfejs API pełnego ekranu.

Zalecana literatura:

+0

Wow - taka świetna wtyczka, dzięki! Czy istnieje sposób na otwarcie łącza w trybie pełnoekranowym, podczas gdy bieżąca karta nie jest w trybie pełnoekranowym? nie znalazłem czegoś takiego w demie. – cukabeka

12

Oto niektóre funkcje I stworzone do pracy w trybie pełnoekranowym w przeglądarce.

Zapewniają pełny ekran i wejście/wyjście w większości głównych przeglądarek.

function isFullScreen() 
{ 
    return (document.fullScreenElement && document.fullScreenElement !== null) 
     || document.mozFullScreen 
     || document.webkitIsFullScreen; 
} 


function requestFullScreen(element) 
{ 
    if (element.requestFullscreen) 
     element.requestFullscreen(); 
    else if (element.msRequestFullscreen) 
     element.msRequestFullscreen(); 
    else if (element.mozRequestFullScreen) 
     element.mozRequestFullScreen(); 
    else if (element.webkitRequestFullscreen) 
     element.webkitRequestFullscreen(); 
} 

function exitFullScreen() 
{ 
    if (document.exitFullscreen) 
     document.exitFullscreen(); 
    else if (document.msExitFullscreen) 
     document.msExitFullscreen(); 
    else if (document.mozCancelFullScreen) 
     document.mozCancelFullScreen(); 
    else if (document.webkitExitFullscreen) 
     document.webkitExitFullscreen(); 
} 

function toggleFullScreen(element) 
{ 
    if (isFullScreen()) 
     exitFullScreen(); 
    else 
     requestFullScreen(element || document.documentElement); 
} 
+0

Działa tylko w celu przywrócenia z trybu pełnoekranowego. –