Ich habe eine AJAX-App für den mobilen Safari-Browser, die verschiedene Arten von Inhalten anzeigen muss.
Für einige Inhalte brauche ich user-scalable=1
und für andere brauche ich user-scalable=0
.
Gibt es eine Möglichkeit, den Wert des Inhaltsattributs zu ändern, ohne die Seite zu aktualisieren?
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
javascript
mobile-safari
viewport
Pfeffer
quelle
quelle
viewport = document.querySelector("meta[name=viewport]"); viewport.setAttribute('content', 'width=1020');
(Nur für einen bestimmten Kontext: Ich stelle dies in eine etwas gesperrte Drupal-Instanz ... Ich habe also keinen direkten Zugang zum Kopfbereich und muss Javascript verwenden.)$('head').append('<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">');
document.getElementsByTagName('head')[0].appendChild( ... );
viewport.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0');
in deinem
<head>
irgendwo in deinem Javascript
... aber viel Glück beim Optimieren für Ihr Gerät, stundenlanges Fummeln ... und ich bin immer noch nicht da!
Quelle
quelle
Dies wurde größtenteils beantwortet, aber ich werde erweitern ...
Schritt 1
Mein Ziel war es, den Zoom zu bestimmten Zeiten zu aktivieren und zu anderen Zeiten zu deaktivieren.
Schritt 2
Das Ansichtsfenster-Tag wurde aktualisiert, aber der Pinch-Zoom war noch aktiv !! Ich musste einen Weg finden, um die Seite dazu zu bringen, die Änderungen zu übernehmen ...
Es ist eine Hack-Lösung, aber das Umschalten der Opazität des Körpers hat den Trick getan. Ich bin mir sicher, dass es andere Möglichkeiten gibt, dies zu erreichen, aber hier ist, was für mich funktioniert hat.
Schritt 3
Mein Problem war zu diesem Zeitpunkt größtenteils gelöst, aber nicht ganz. Ich musste die aktuelle Zoomstufe der Seite kennen, damit ich einige Elemente an die Seite anpassen konnte (denken Sie an Kartenmarkierungen).
Ich hoffe das hilft jemandem. Ich habe mehrere Stunden damit verbracht, meine Maus zu schlagen, bevor ich eine Lösung gefunden habe.
quelle