Tengo una aplicación AJAX creada para el navegador Safari móvil que necesita mostrar diferentes tipos de contenido.
Para algunos contenidos, necesito user-scalable=1
y para otros, necesito user-scalable=0
.
¿Hay alguna forma de modificar el valor del atributo de contenido sin actualizar la página?
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
javascript
mobile-safari
viewport
Pimienta
fuente
fuente
viewport = document.querySelector("meta[name=viewport]"); viewport.setAttribute('content', 'width=1020');
tuve suerte: (Solo para un poco de contexto: estoy poniendo esto en una instancia de Drupal algo bloqueada ... así que no tengo acceso directo al área de la cabeza y necesito usar Javascript)$('head').append('<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">');
o, sin jQuery:document.getElementsByTagName('head')[0].appendChild( ... );
viewport.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0');
en tus
<head>
en algún lugar de tu javascript
... pero buena suerte con ajustarlo para tu dispositivo, jugando durante horas ... ¡y todavía no estoy allí!
fuente
fuente
Esto ha sido respondido en su mayor parte, pero ampliaré ...
Paso 1
Mi objetivo era habilitar el zoom en ciertos momentos y deshabilitarlo en otros.
Paso 2
La etiqueta de la ventana gráfica se actualizaría, ¡pero el zoom aún estaba activo! Tenía que encontrar una manera de que la página recogiera los cambios ...
Es una solución de pirateo, pero alternar la opacidad del cuerpo funcionó. Estoy seguro de que hay otras formas de lograr esto, pero esto es lo que funcionó para mí.
Paso 3
Mi problema se resolvió en su mayoría en este punto, pero no del todo. Necesitaba saber el nivel de zoom actual de la página para poder cambiar el tamaño de algunos elementos para que quepan en la página (piense en los marcadores del mapa).
Espero que esto ayude a alguien. Pasé varias horas golpeando el mouse antes de encontrar una solución.
fuente