mini-navigateur mobile: comment recharger l'image tout en maintenant la page position décalée?
-
19-09-2019 - |
Question
Dans minibrowsers Web mobile, il semble que l'objet window
n'a pas de sens - car il n'y a qu'une seule fenêtre pour afficher. Par conséquent, des choses comme window.pageYOffset=320
font pas de sens (pour autant que je peux dire).
Étant donné un exemple simple comme une carte zoomin / zoomout comme
<html>
<head>
<title>zoom.html</title>
<script language="javascript">
var zoom=15;
var vpos=window.pageYOffset;
var key="whatever-your-Google-Maps-site-key-is";
function setImgSrc(z) {
document.getElementById('img').src=
"http://maps.google.com/maps/api/staticmap?center=Lisbon,Portugal&zoom="
+zoom+"&size=400x400&maptype=roadmap&sensor=false&key="+key;
}
function zoomin()
{ if(zoom<=18) zoom++; vpos=window.pageYOffset; setImgSrc(zoom); }
function zoomout()
{ if(zoom>=1) zoom--; vpos=window.pageYOffset; setImgSrc(zoom); }
</script>
</head>
<body onload="javascript:setImgSrc(15);">
<h1>zoom</h1>
<p><img id="img" alt="Lisbon,Portugal"/></p><p>
<a onclick="javascript:zoomin()">[+]</a>
<a onclick="javascript:zoomout()">[–</a>
</p><hr></body></html>
qui semble bien fonctionner sur les navigateurs de bureau; Je demande donc: comment puis-je indiquer que, sur la mise à jour la page (onclick
ne semble pas fonctionner sur minibrowsers, mais href
ne) devrait compenser la page à la position précédente?
(Pour d'autres raisons, tout simplement (re) chargement de la page à une ancre name
d donnée ne fonctionne pas sur le problème que je traite.)
Merci d'avance pour vos commentaires.
La solution
est-il pas beau quand vous répondez à vos questions? Hmmm ...
Quoi qu'il en soit, selon cette , certaines propriétés / fonctions pour le JavaScript (JScript ?) objet window
ont des représentations différentes selon le choix du navigateur (Firefox, IE, etc.). Par conséquent, une page possible verticale fonction de décalage serait
function setPageVPos(w,vpos) {
try { w.scrollTo(0,vpos); } catch(e) {}
try { w.document.body.scrollTop(vpos); } catch(e) {}
}
Les premiers essais avec la mise en œuvre de window.scrollTo
dans les navigateurs Firefox et le second essais avec la mise en œuvre de document.body.scrollTop
dans les navigateurs IE. Je l'ai testé dans les deux Firefox (bureau) et dans un navigateur IE-minibrowser comme HP iPaq (mobile) et fonctionne sur les deux.