0

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

给定一个简单的示例,例如地图放大/缩小,例如

<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确实)它应该将页面偏移到以前的位置?(由于其他原因,简单地(重新)将页面加载到给定的named 锚点并不能解决我正在处理的问题。)

提前感谢您的反馈。

4

1 回答 1

0

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

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

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

第一个尝试window.scrollTo在 Firefox 浏览器中实现,第二个尝试document.body.scrollTop在 IE 浏览器中实现。我已经在 Firefox(桌面)浏览器和类似 HP iPaq IE(移动)的迷你浏览器中进行了测试,并且两者都可以使用。

于 2010-01-08T10:44:01.007 回答