mini-navigateur mobile: comment recharger l'image tout en maintenant la page position décalée?

StackOverflow https://stackoverflow.com/questions/2026718

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>
&nbsp;&nbsp;<a onclick="javascript:zoomin()">[+]</a>&nbsp;&nbsp;
&nbsp;&nbsp;<a onclick="javascript:zoomout()">[&ndash;</a>&nbsp;&nbsp;
</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 named donnée ne fonctionne pas sur le problème que je traite.)

Merci d'avance pour vos commentaires.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top