2012-05-17 19 views
11

realmente me molesta ahora,Javascript window.navigator.standalone roto

he desnudado mi código de abajo a esto

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

sin embargo, cada vez que ejecute esto en mi iPad desde Safari se echa la alerta.

No tengo idea de por qué y está causando caos en todo mi proyecto uni que se debe a lunes. Cualquier ayuda sería increíble.

+0

gah, ¡tenía código diferente antes, sin el! y vio que alguien dijo que el código anterior era más confiable. ¡Así que lo cambié sin darme cuenta! Gracias. – Owen

+2

Debe publicar eso como una respuesta y aceptarlo para que su pregunta no aparezca en la pestaña 'no respondida'. – Mageek

Respuesta

7

Cuando/si la página web está en el modo Safari estándar/habitual, el valor "window.navigator.standalone" será False. Solo cuando la página web esté en "modo de aplicación/es decir, modo de pantalla completa", este valor será Verdadero. NOTA: este valor de JavaScript no existe en los navegadores que no son compatibles con "modo de aplicación/es decir, modo de pantalla completa". Por lo tanto, debe probar tanto la existencia misma de la propiedad window.navigator.standalone como su veracidad.

+0

No lo entiendo. ¿Por qué simple si (navigator.standalone) no funcionará? Si la propiedad no está allí, seguirá siendo falsa. Si está allí y es falso, es falso. Si está ahí y es cierto, es cierto. ¿No es lo que esperaba? –

+1

@YaroslavYakovlev podría ser que realmente está en una aplicación, sin embargo, este navegador en la aplicación puede no ser compatible con el atributo independiente. Por lo tanto, tiene tres valores posibles: - 'false': está SEGURO de que está en un navegador, -' true': está SEGURO de que está en una aplicación, - 'undefined': no está seguro acerca de todo; –