2010-01-08 14 views
0

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).minibrowser Mobile: comment recharger la page image en maintaing position décalée?

Étant donné un exemple simple comme une carte zoomin/zoomout tels que

<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; donc je demande: comment puis-je indiquer que, lors de la mise à jour de la page (onclick ne semble pas fonctionner sur les mini-navigateurs, mais href ne) il devrait compenser la page à la position précédente? (Pour d'autres raisons, le simple fait de (re) charger la page à name d d'ancrage ne fonctionne pas sur le problème que j'ai affaire.)

Merci d'avance pour vos commentaires.

Répondre

0

est-il pas beau quand vous répondez à vos questions? Hmmm ...

Quoi qu'il en soit, selon this, certaines propriétés/fonctions pour l'objet JavaScript (JScript?) window ont des représentations différentes selon le choix du navigateur (Firefox, IE, etc.). Par conséquent, une fonction de décalage vertical page possible 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 window.scrollTo dans les navigateurs Firefox et le second essais avec la mise en œuvre 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.