Mam aplikację AJAX stworzoną dla mobilnej przeglądarki Safari, która musi wyświetlać różne rodzaje treści.
Do niektórych treści potrzebuję, user-scalable=1
a do innych potrzebuję user-scalable=0
.
Czy istnieje sposób na zmodyfikowanie wartości atrybutu content bez odświeżania strony?
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
javascript
mobile-safari
viewport
Pieprz
źródło
źródło
viewport = document.querySelector("meta[name=viewport]"); viewport.setAttribute('content', 'width=1020');
(tylko w pewnym kontekście: umieszczam to w nieco zablokowanej instancji Drupala ... więc nie mam bezpośredniego dostępu do obszaru głowy i muszę używać Javascript)$('head').append('<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">');
lub bez jQuery:document.getElementsByTagName('head')[0].appendChild( ... );
viewport.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0');
w Twoim
<head>
gdzieś w twoim javascript
... ale powodzenia w dostosowywaniu go do swojego urządzenia, majstrowaniu godzinami ... i nadal mnie tam nie ma!
źródło
źródło
W większości odpowiedzi na to pytanie, ale rozszerzę ...
Krok 1
Moim celem było włączenie zoomu w określonych momentach i wyłączenie go w innych.
Krok 2
Znacznik rzutni aktualizował się, ale powiększanie przez szczypanie było nadal aktywne! Musiałem znaleźć sposób, aby strona odebrała zmiany ...
To hackowe rozwiązanie, ale przełączenie krycia ciała załatwiło sprawę. Jestem pewien, że istnieją inne sposoby, aby to osiągnąć, ale oto, co zadziałało dla mnie.
Krok 3
Mój problem został w większości rozwiązany w tym momencie, ale nie do końca. Musiałem znać aktualny poziom powiększenia strony, aby móc zmienić rozmiar niektórych elementów, aby zmieściły się na stronie (pomyśl o znacznikach mapy).
Mam nadzieję, że to komuś pomoże. Spędziłem kilka godzin uderzając myszą, zanim znalazłem rozwiązanie.
źródło