我正在努力做到这一点,因此当用户向下滚动页面,单击链接,做他们需要做的任何事情,然后返回带有链接的页面时,它们位于相同的(xy)位置他们以前的浏览器。我怎么做?
我是 DOM 新手,所以我不太了解如何执行此操作。
目标浏览器:IE6/7/8、Firefox 2/3、Opera、Safari
补充:我正在使用一个叫JQuery的程序来帮助我学习
我正在努力做到这一点,因此当用户向下滚动页面,单击链接,做他们需要做的任何事情,然后返回带有链接的页面时,它们位于相同的(xy)位置他们以前的浏览器。我怎么做?
我是 DOM 新手,所以我不太了解如何执行此操作。
目标浏览器:IE6/7/8、Firefox 2/3、Opera、Safari
补充:我正在使用一个叫JQuery的程序来帮助我学习
要获取用户单击页面的 xy 位置,请使用以下 jQuery 代码:
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
$("#special").click(function(e){
$('#status2').html(e.pageX +', '+ e.pageY);
});
});
</script>
</head>
<body>
<h2 id="status2">
0, 0
</h2>
<div style="width: 100px; height: 100px; background:#ccc;" id="special">
Click me anywhere!
</div>
</body>
</html>
通常,如果您离开然后返回,浏览器将保留页面视口(在您最喜欢的新闻网站上的任何页面上尝试)。唯一的例外可能是您调整缓存设置以每次重新下载和重新呈现页面。
不这样做(也就是说,不将您的页面设置为从不缓存)可能是解决问题的最简单、最不突兀的方法。
据我回忆,获取视口位置的代码因浏览器而异,因此使用某种框架会更容易,例如,Prototype有一个函数 document.viewport.getScrollOffsets (我相信它就是你追求)。
但是,获取坐标只是其中的一部分,另一部分将在以后对它们进行处理。在这种情况下,您可以将事件侦听器添加到 window.unload 事件,当该事件触发时,将位置保存在 cookie 中,然后当用户再次打开页面时,检查该 cookie 是否存在并相应地滚动。
尽管如果您关心的只是让用户通过浏览器的“后退”按钮返回到他所在的位置,那么大多数浏览器不是已经自动执行此操作了吗?
你可以使用 offsetLeft 和 offsetTop