2012-05-17 7 views
11

wirklich ärgerlich ich jetzt,Javascript window.navigator.standalone gebrochen

ich meinen Code gestrippt habe bis zu diesem

$(function(){ 
    if (("standalone" in window.navigator) && !window.navigator.standalone) { 
    alert('full screen'); 
    } 
}); 

noch jedes Mal, wenn ich diese aus Safari auf meinem iPad laufen tritt es aus dem aufmerksam.

Ich habe keine Ahnung warum und es verursacht Chaos zu meinem ganzen Uni-Projekt, das Montag fällig ist! Jede Hilfe wäre toll.

+0

gah, ich hatte vorher einen anderen Code, ohne den! und sah, dass jemand sagte, dass der obige Code zuverlässiger sei. also habe ich es einfach ausgetauscht, ohne das zu bemerken! Vielen Dank. – Owen

+2

Sie sollten dies als Antwort posten und akzeptieren, damit Ihre Frage nicht im Tab "unbeantwortet" erscheint. – Mageek

Antwort

7

Wenn sich die Webseite im normalen Safari-Modus befindet, wird der Wert "window.navigator.standalone" auf False gesetzt. Nur wenn sich die Webseite im "App-Modus/d. H. Vollbildmodus" befindet, ist dieser Wert True. HINWEIS: Dieser JavaScript-Wert existiert nicht in Browsern, die den "App-Modus/d. H. Vollbildmodus" nicht unterstützen. Also sollten Sie sowohl für die Existenz der Eigenschaft window.navigator.standalone als auch für ihre Wahrhaftigkeit testen.

+0

Ich verstehe es nicht. Warum einfach wenn (navigator.standalone) nicht funktioniert? Wenn die Eigenschaft nicht vorhanden ist, wird sie immer noch falsch sein. Wenn es dort ist und falsch ist, ist es falsch. Wenn es da ist und wahr ist es wahr. Ist es nicht was erwartet? –

+1

@YaroslavYakovlev könnte es sein, dass Sie tatsächlich in einer App sind, jedoch unterstützt dieser In-App-Browser das Standalone-Attribut möglicherweise nicht. Sie haben also drei mögliche Werte: - 'false': Sie sind sicher, dass Sie in einem Browser sind, -' true': Sie sind sicher, dass Sie in einer App sind, - 'undefined': Sie sind sich nicht sicher Über alles mögliche; –