在移动网络迷你浏览器中,似乎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>
<a onclick="javascript:zoomin()">[+]</a>
<a onclick="javascript:zoomout()">[–</a>
</p><hr></body></html>
似乎在桌面浏览器上运行良好;所以我问:我怎么能指出,在更新页面时onclick
似乎不适用于迷你浏览器,但是href
呢?它应该将页面偏移到以前的位置?
(由于其他原因,简单地(重新)将页面加载到给定的name
d锚点不能解决我正在处理的问题。)
提前感谢您的反馈。
答案 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(移动)迷你浏览器中进行了测试,并在两者上工作。