Мобильный минибраузер: как перезагрузить изображение, сохраняя положение смещения страницы? - PullRequest
0 голосов
/ 08 января 2010

В мобильных веб-браузерах кажется, что объект window не имеет смысла & mdash; так как есть только одно окно, чтобы показать. Поэтому такие вещи, как 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 голосов
/ 08 января 2010

Разве это не прекрасно, когда ты отвечаешь на свои вопросы? Ммм ...

В любом случае, согласно этому , некоторые свойства / функции для объекта 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 (мобильный), и работает на обоих.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...