Chrome-Vollbild-API


70

Laut diesem Artikel verfügt Google Chrome 15 über eine JavaScript-API im Vollbildmodus.

Ich habe versucht, es zum Laufen zu bringen, bin aber gescheitert. Ich habe auch vergeblich nach offiziellen Unterlagen gesucht.

Wie sieht die Vollbild-JavaScript-API aus?


Dies ist die vorgeschlagene Spezifikation, die implementiert werden soll: wiki.mozilla.org/Gecko:FullScreenAPI#Proposed_Specification .
Pimvdb

Ich habe es auch nicht zum Laufen gebracht , obwohl sie dies in WebKit implementiert haben: bugs.webkit.org/show_bug.cgi?id=43099 . Dies ist der Chromium-Fehler, der möglicherweise relevant ist: code.google.com/p/chromium/issues/detail?id=73923 .
Pimvdb

2
Sie können es im "Kiosk-Modus" (Vollbild, keine Steuerelemente) wie folgt starten: chrome.exe –kiosk http: // ...
Diodeus - James MacFarlane

Antworten:


143

Die API funktioniert nur während der Benutzerinteraktion und kann daher nicht böswillig verwendet werden. Versuchen Sie den folgenden Code:

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

    rfs.call(el);
});

3
Wie ist "Benutzerinteraktion" definiert?
Randomblue

Die meisten UIEvents und MouseEvents, wie clickund keydownusw.
Eli Gray

Dies funktioniert für mich, um in den Vollbildmodus zu gelangen. Wenn der Benutzer jedoch zur nächsten Seite meiner Website navigiert, wird der Vollbildmodus beendet. Gibt es eine Möglichkeit, dies zu vermeiden?
Alex9311

1
@ alex9311 Soweit ich weiß, müssen Sie AJAX verwenden, um Inhalte zu aktualisieren. Sie können die Seite nicht verlassen.
Michael

Dies funktioniert mit "Klick", aber nicht mit "Mouseenter". Aber Mouseenter ist AUCH eine Benutzerinteraktion.
Johny, warum

35

Ich habe einen einfachen Wrapper für die Vollbild-API namens screenfull.js erstellt , um das Präfix-Durcheinander auszugleichen und einige Inkonsistenzen in den verschiedenen Implementierungen zu beheben. Probier das aus Demo an, um zu sehen, wie die Vollbild-API funktioniert.

Literatur-Empfehlungen:


Wow - so ein tolles Plugin, danke! Gibt es eine Möglichkeit, einen Link im Vollbildmodus zu öffnen, während die aktuelle Registerkarte nicht im Vollbildmodus angezeigt wird? habe so etwas in der Demo nicht gefunden.
Cukabeka

16

Hier sind einige Funktionen, die ich für die Arbeit mit Vollbild im Browser erstellt habe.

Sie bieten sowohl Vollbild-Eingabe als auch Vollbild in den meisten gängigen Browsern.

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

7

Der folgende Test funktioniert in Chrome 16 (Entwicklungszweig) unter X86 und Chrome 15 unter Mac OSX Lion

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


Wenn ich "enterFullScreen ()" über die Konsole eingebe, wird es nicht im Vollbildmodus angezeigt.
Randomblue

3
Sie müssen den Aufruf requestFullScreen () für ein Element ausführen, das Sie im Vollbildmodus anzeigen möchten. Es gibt keine Möglichkeit, einfach in den Modus zu springen. Hier ist eine weitere hervorragende Beschreibung der FullScreen-API von John Dyer mit einem vollständigen Beispiel johndyer.name/…
Mo Kargas

Link 404s jetzt.
Anthony

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.