移动迷你浏览器:如何在保持页面偏移位置的同时重新加载图像?

时间:2010-01-08 09:53:02

标签: javascript browser mobile offset

在移动网络迷你浏览器中,似乎window对象毫无意义 - 因为只有一个窗口可以显示。因此,像window.pageYOffset=320这样的事情毫无意义(据我所知)。

给出一个简单的例子,例如地图zoomin / zoomout,例如

<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>

似乎在桌面浏览器上运行良好;所以我问:我怎么能指出,在更新页面时onclick似乎不适用于迷你浏览器,但是href呢?它应该将页面偏移到以前的位置? (由于其他原因,简单地(重新)将页面加载到给定的name d锚点不能解决我正在处理的问题。)

提前感谢您的反馈。

1 个答案:

答案 0 :(得分:0)

当你回答自己的问题时,这不是很可爱吗?嗯...

无论如何,根据this,JavaScript(JScript?)window对象的一些属性/函数根据浏览器的选择(Firefox,IE等)有不同的表示。因此,可能的页面垂直偏移函数将是

function setPageVPos(w,vpos) {
  try { w.scrollTo(0,vpos); } catch(e) {}
  try { w.document.body.scrollTop(vpos); } catch(e) {}
}

第一次尝试在Firefox浏览器中使用window.scrollTo实现,第二次尝试在IE浏览器中使用document.body.scrollTop实现。我已经在Firefox(桌面)浏览器和HP iPaq IE(移动)迷你浏览器中进行了测试,并在两者上工作。