我的网页页面中有表单(更多页面),当php刷新页面时,我需要javascript来保持表单的滚动位置。
我试过了:
<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>
但是这个脚本总是将位置发送到另一个页面,因此页面滚动而不点击按钮。
答案 0 :(得分:0)
因为您的代码没有检查以阻止它在页面上。
$(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;
}