在我提交表单后,该位置将返回到窗口的顶部。而不是去上一个位置。
正在考虑使用 scrolltop 来记住位置,或者您有更好的主意吗?
我正在使用 PHP5、jQuery 和 MySQL 之类的东西。
首先在您希望访问者提交表单时访问的页面中创建一个锚点。
然后在你的表单动作或重定向点到带有锚的文件
例如
<div id="view_from_here" >.....
然后
<form action="myfile.php#view_from_here" ....
看一下这个:
<script type="text/javascript" src="der/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="der/jquery.cookie.js"></script>
<script type="text/javascript">
function get_position(){
var top_position = document.documentElement.scrollTop;
$.cookie('pos', top_position);
};
function set_position(){
var top_position = $.cookie('pos');
window.scrollTo(0,top_position)
$.cookie('pos', null);
};
</script>
</head>
<body onload="set_position();">
.
.
.
<form method="post" action="" onsubmit="return get_position();">
</form>
如果您通过 Ajax 提交表单,它不会更改任何内容(也许这是一个选项,如果您仍然重定向到同一页面)。您还可以在提交和检索之前通过 JavaScript 将位置保存在 Cookie 中,并在新页面加载时设置值(例如使用 jQuery scrollTo)。或者您只是在您的表单字段上设置一个锚点(这很可能是用户滚动到的最后一个位置)并在提交后滚动回表单。