2012-05-17 12 views
11

naprawdę denerwujące mnie teraz,JavaScript window.navigator.standalone uszkodzony

Mam pozbawiony mojego kodu do tego

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

jeszcze za każdym razem uruchomić to na moim iPadzie OD safari to wykopuje się z alarm.

Nie mam pojęcia, dlaczego i dlaczego powoduje chaos w całym moim projekcie uni, który ma nadejść w poniedziałek! Każda pomoc byłaby niesamowita.

+0

gah, miałem inny kod wcześniej, bez! i zobaczyłem, że ktoś powiedział, że powyższy kod jest bardziej niezawodny. więc wymieniłem go, nie zauważając! dzięki. – Owen

+2

Powinieneś opublikować to jako odpowiedź i zaakceptować, aby Twoje pytanie nie pojawiło się w zakładce "bez odpowiedzi". – Mageek

Odpowiedz

7

Kiedy/jeśli strona internetowa jest w standardowym/zwykłym trybie Safari, wartość "window.navigator.standalone" będzie fałszywa. Tylko wtedy, gdy strona internetowa jest w "trybie aplikacji/tj. Trybie pełnoekranowym", ta wartość będzie równa True. UWAGA: ta wartość JavaScript nie istnieje w przeglądarkach, które nie obsługują "trybu aplikacji/tj. Trybu pełnoekranowego". Dlatego powinieneś przetestować zarówno samo istnienie właściwości window.navigator.standalone, jak i jej prawdziwość.

+0

Nie rozumiem tego. Dlaczego proste, jeśli (navigator.standalone) nie działa? Jeśli właściwość nie jest dostępna, nadal będzie to fałsz. Jeśli jest tam i fałszywie to jest fałszywe. Jeśli jest tam i prawda jest prawdziwa. Czy to nie jest oczekiwane? –

+1

@YaroslavYakovlev może to oznaczać, że faktycznie znajdujesz się w aplikacji, jednak ta przeglądarka w aplikacji może nie obsługiwać autonomicznego atrybutu. Masz więc trzy możliwe wartości: - "false": jesteś pewien, że jesteś w przeglądarce, - "true": jesteś pewien, że jesteś w aplikacji, - 'undefined': nie jesteś pewien o czym kolwiek; –

Powiązane problemy