Javascript-Anfrage Vollbild ist unzuverlässig
Ich versuche zu verwenden, der JavaScript-FullScreen-API, mit workarounds für die aktuelle nicht-standard-Implementierungen von hier:
https://developer.mozilla.org/en/DOM/Using_full-screen_mode#AutoCompatibilityTable
Traurig, es verhält sich sehr sprunghaft. Ich habe nur darauf zu Chrome (mit v17), aber da hatte ich Probleme, die ich habe einige tests in Firefox 10 zum Vergleich sind die Ergebnisse ähnlich.
Den code unten versucht, den browser auf Vollbild, manchmal klappt es, manchmal nicht. Es ruft IMMER die Warnmeldung zu zeigen, ist es ersuchenden fullscreen. Hier ist, was ich gefunden habe:
- Es in der REGEL setzt fullscreen. Es kann zu einem Zustand, wo dies nicht mehr funktioniert, aber der Alarm noch passiert, d.h. es ist noch ersuchenden FullScreen, aber es funktioniert nicht.
- Es kann funktionieren, wenn der Aufruf aus einer keypress-handler (document.onkeypress), aber nicht wenn man auf laden der Seite (window.onload).
Mein code ist wie folgt:
function DoFullScreen() {
var isInFullScreen = (document.fullScreenElement && document.fullScreenElement !== null) || //alternative standard method
(document.mozFullScreen || document.webkitIsFullScreen);
var docElm = document.documentElement;
if (!isInFullScreen) {
if (docElm.requestFullscreen) {
docElm.requestFullscreen();
}
else if (docElm.mozRequestFullScreen) {
docElm.mozRequestFullScreen();
alert("Mozilla entering fullscreen!");
}
else if (docElm.webkitRequestFullScreen) {
docElm.webkitRequestFullScreen();
alert("Webkit entering fullscreen!");
}
}
}
Kommentar zu dem Problem
Es erscheint das zweite problem ist ein vorsätzliches handeln, offenbar gehen, um Vollbild ist nur zulässig, während der Benutzer-Interaktion. Was nicht klar ist, warum auch die während der Interaktion, geht Vollbild nur manchmal funktioniert.
Sie Funktion ist in Ordnung, die in Chrome 17 auf ubuntu - ich kann es nicht reproduzieren Ihre erste problem - vielleicht ist es os-spezifisches Problem.
Die aktuelle Seite auf dem ganzen Bildschirm, aber wenn ich navigieren Sie zu den nächsten Seiten.. durch andere hyperlinks, geht Es wieder zurück in den normalen Modus, warum?
@karthi, alle Informationen auf dieser Seite ist von vor einem Jahr, alle Browser aktualisiert wurden, seit dann. Wenn Sie Probleme mit den aktuellen Browsern schlage ich vor, du stellst eine neue Frage.
InformationsquelleAutor der Frage Stefan | 2012-02-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
requestFullscreen()
können nicht automatisch aufgerufen werden, ist aus Sicherheitsgründen (zumindest in Chrome). Es kann daher nur aufgerufen werden, durch eine Benutzeraktion wie:Und wenn Ihr Dokument in einem frame enthalten ist:
allowfullscreen
muss vorhanden sein, auf die<iframe>
element*Lesen Sie mehr: W3-Spec auf Fullscreen
Auch erwähnt @abergmeier, auf Firefox fullscreen Ihre Anfrage die ausgeführt werden müssen, innerhalb von 1 Sekunde nach den user-generierten Ereignis ausgelöst wurde.
InformationsquelleAutor der Antwort Derek 朕會功夫
Ich weiß, das ist eine ganz alte Frage, aber es ist immer noch das top-Ergebnis bei Google bei der Suche nach FireFox-Fehlermeldung beim Aufruf
mozRequestFullScreen()
von code, der nicht ausgelöst durch eine Benutzerinteraktion.Wie bereits gesagt, dies ist eine Sicherheitseinstellung, und daher ist das richtige Verhalten im normalen browser-Umgebung (end-user-Maschine).
Aber ich bin writting eine HTML5-basierte digital-signage-Anwendung läuft unter einer kontrollierten Umgebung, ohne jegliche Interaktion mit dem Benutzer vorgesehen. Es ist wichtig für meine apllication zu können, wechseln Sie in den Vollbildmodus automatisch.
Glücklicherweise FireFox bietet eine Möglichkeit, diese Beschränkung zu entfernen, die auf den browser, der ist ziemlich schwer zu finden. Ich Schreibe es hier als zukünftige Referenz für alle finden diese Seite über die Google Suche, denn ich habe
Auf die
about:config
Seite suchen Sie den folgenden Schlüssel, und legen Sie es auf falseFür meine digital-signage-Anwendung, die ich auch entfernt die Eingabeaufforderung zeigt der browser bei der Eingabe fullscren:
Hoffentlich retten könnte jemand die Stunden die ich vergeudet habe, um die entsprechenden Einstellungen finden.
InformationsquelleAutor der Antwort Lukas Zech
Du hast nichts falsch mit Ihrer Funktion. In Firefox, wenn Sie rufen Sie diese Funktion direkt, es wird verhindert, dass für full-screen. Wie Sie wissen, ist Anfrage für Vollbildmodus wurde abgelehnt, weil docElm.mozRequestFullScreen(); nicht aufgerufen wurde, innerhalb einer kurzen Laufenden Benutzer-generierte Ereignisprozedur. Also, Sie müssen rufen Sie die Funktion auf onClick-event wie in Firefox.
InformationsquelleAutor der Antwort Sally Hammel
Andere unerwartete Problem mit
requestFullscreen()
ist, dass die parent-frames müssen über dieallowfullscreen
Attribut, ansonsten Firefox gibt folgende Fehlermeldung:Abgesehen von iframes, dies kann verursacht werden, von Ihrer Seite, die innerhalb einer
frameset
Rahmen. Daframeset
ist veraltet, es gibt keine Unterstützung für die HTML5 -allowfullscreen
- Attribut, und dierequestFullscreen()
- Aufruf fehlschlägt.Den Firefox-Dokumentation ausdrücklich diese auf MDN, aber ich denke es trägt zu wiederholen hier, für Entwickler, die vielleicht nicht die Dokumentation Lesen zuerst.... ähem
InformationsquelleAutor der Antwort Drew