浏览器历史记录返回可滚动div

时间:2010-03-17 07:33:58

标签: html scroll anchor browser-history fragment-identifier

当我跳到第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 个答案:

答案 0 :(得分:1)

您可以尝试链接到页面顶部有锚点的/pagename.htm#topofpage。任何人在没有点击您提供给该页面的链接的情况下访问您的页面都不会产生效果,但任何前往/pagename.htm#topofpage的人都应该,我认为(未经过测试),会对其浏览器添加位置敏感的内容历史。

此外,使用非常少的 javascript,您应该能够在首次加载时使页面转到该哈希值,这样就可以让访问/pagename.htm的任何人访问{{1 }}。只需插入:

/pagename.htm#topofpage

理论上说,有人第一次访问脚本运行的页面,将它们放在#topofpage,然后除非刷新,否则它们将无法运行。