История браузера возвращается с прокручиваемым div - PullRequest
0 голосов
/ 17 марта 2010

Когда я перехожу к разделу 1 и 2, все работает нормально, и протестированные мной браузеры (IE8, FF3.6, Chrome 5.0.342.3) прокручиваются до соответствующей привязки в div. Но когда я нажимаю кнопку возврата истории браузера, div не переходит обратно вверх.

Есть ли способ заставить это работать без использования JavaScript?

<div id="scrolldiv" style="overflow:auto; width:500px; height:500px; border:2px solid #e1e1e1; "> 
<a href="#link1">Jump to section 1</a> <br />
<a href="#link2">Jump to section 2</a> <br />

<h1 id="link1" name="link1">Section 1</h1> 
<p>lots of text<br />lots of text<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></p> 

<h1 id="link2" name="link2">Section 2</h1> 
<p>lots of text<br />lots of text<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></p> 

1 Ответ

1 голос
/ 17 марта 2010

Вы можете попробовать установить ссылку на /pagename.htm#topofpage, где есть якорь вверху страницы. Любой, кто попал на вашу страницу, не щелкнув по ссылке, которую вы указали на этой странице, не получит эффекта, но любой, кто перейдет на /pagename.htm#topofpage, должен, я думаю (не проверял), получить чувствительные к позиции дополнения в истории своего браузера.

Кроме того, с очень небольшим javascript вы сможете заставить страницу переходить к этому хешу при первой загрузке, что позволит любому посетителю /pagename.htm перейти на /pagename.htm#topofpage. Просто вставьте:

<script type="text/javascript" language="javascript">
  location.hash = "#topofpage";
</script>

Теория заключается в том, что при первом посещении страницы сценарий запускается, помещая их в #topofpage, и что впоследствии он не запустится, если не обновится.

...