J'ai une application AJAX conçue pour le navigateur Safari mobile qui doit afficher différents types de contenu.
Pour certains contenus, j'ai besoin user-scalable=1
et pour d'autres, j'ai besoin user-scalable=0
.
Existe-t-il un moyen de modifier la valeur de l'attribut de contenu sans actualiser la page?
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
javascript
mobile-safari
viewport
Poivre
la source
la source
viewport = document.querySelector("meta[name=viewport]"); viewport.setAttribute('content', 'width=1020');
(Juste pour un certain contexte: je mets cela dans une instance Drupal quelque peu verrouillée ... donc je n'ai pas d'accès direct à la zone de la tête et dois utiliser Javascript)$('head').append('<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">');
ou, sans jQuery:document.getElementsByTagName('head')[0].appendChild( ... );
viewport.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0');
dans votre
<head>
quelque part dans votre javascript
... mais bonne chance pour le peaufiner pour votre appareil, jouer pendant des heures ... et je ne suis toujours pas là!
la source
la source
Cela a été répondu pour la plupart, mais je vais développer ...
Étape 1
Mon objectif était d'activer le zoom à certains moments et de le désactiver à d'autres.
Étape 2
La balise de la fenêtre serait mise à jour, mais le zoom par pincement était toujours actif !! J'ai dû trouver un moyen pour que la page reprenne les modifications ...
C'est une solution de piratage, mais basculer l'opacité du corps a fait l'affaire. Je suis sûr qu'il existe d'autres façons d'accomplir cela, mais voici ce qui a fonctionné pour moi.
Étape 3
Mon problème a été en grande partie résolu à ce stade, mais pas tout à fait. J'avais besoin de connaître le niveau de zoom actuel de la page afin de pouvoir redimensionner certains éléments pour les adapter à la page (pensez aux marqueurs de carte).
J'espère que cela aide quelqu'un. J'ai passé plusieurs heures à frapper ma souris avant de trouver une solution.
la source