提交表单时保持位置的Javascript

提交表单时保持位置的Javascript,javascript,php,html,Javascript,Php,Html,我的网页页脚有表单(更多页面),我需要javascript在php刷新页面时保持表单的滚动位置 我试过这个: <input type="submit" onclick="myunction()" value="Send" name="submit" class="submitsub"> <script type="text/javascript"> $(window).scroll(function() { sessionStorage.scrollTop = $

我的网页页脚有表单(更多页面),我需要javascript在php刷新页面时保持表单的滚动位置

我试过这个:

<input type="submit" onclick="myunction()" value="Send" name="submit" class="submitsub">

<script type="text/javascript">

$(window).scroll(function() {
  sessionStorage.scrollTop = $(this).scrollTop();
});

$(document).ready(function() {
  if (sessionStorage.scrollTop != "undefined") {
    $(window).scrollTop(sessionStorage.scrollTop);
  }
});


function myunction(){
    $("form").submit();
}
</script>

$(窗口)。滚动(函数(){
sessionStorage.scrollTop=$(this.scrollTop();
});
$(文档).ready(函数(){
if(sessionStorage.scrollTop!=“未定义”){
$(窗口).scrollTop(会话存储.scrollTop);
}
});
函数myfunction(){
$(“表格”)。提交();
}

但是这个脚本总是将位置发送到另一个页面,所以页面在不单击按钮的情况下滚动。

,因为您的代码没有阻止它在页面上滚动的检查

$(document).ready(function() {
  if (window.location.href === 'urlWhereYouWantItToRun' && sessionStorage.scrollTop != "undefined") {
    $(window).scrollTop(sessionStorage.scrollTop);
  }
});
另一种方法是在新页面加载时从sessionStorage中删除该值

您可以通过以下方式删除页面加载上的值:

window.onload = function () {
 delete sessionStorage.scrollTop;
}
因此,总结所有方法:

// Page 1
$(document).ready(function () {
    if (window.location.href === 'urlWhereYouWantItToRun' && sessionStorage.scrollTop != "undefined") {
        $(window).scrollTop(sessionStorage.scrollTop);
    }
});


// Page 2, and not on page 1
window.onload = function () {
    delete sessionStorage.scrollTop;
};

window.onbeforeunload = function () {
    delete sessionStorage.scrollTop;
    return;
}

如果我做得对的话,这是不好的。我必须添加当前文件的url吗?它必须是像www.example.com/this.php这样的完整url,还是只有this.php?请告诉我如何在新页面加载时从sessionStorage中删除该值?仍在发生的问题是什么?你也可以用这个钩子
window.onbeforeunload=function(){delete sessionStorage.scrollTop;return;}
。当访问新页面时,仍然保持第一页的位置。我应该在哪里编写这个新脚本:window.onbeforeuload=function(){delete sessionStorage.scrollTop;return;}??