kh_*_*one 5 html javascript django
我有一个 Django 模板,我可以通过单击按钮来调用视图。view 函数返回 aHttpResponseRedirect到同一页面。我希望页面返回/刷新到与用户单击按钮时相同的滚动位置。
到目前为止,这是我尝试过的:
尝试1:基于this和this,我onsubmit在表单中添加了一个,如下所示:
<form action="{% url 'buy' market.id %}" method="post" onsubmit="return refreshToSameScroll()">
Run Code Online (Sandbox Code Playgroud)
...location.reload()通过以下脚本调用:
<script type="text/javascript">
function refreshToSameScroll() {
location.reload();
}
</script>
Run Code Online (Sandbox Code Playgroud)
但这没有用。
尝试 2:然后我尝试了以下组合,并从此进行了修改:
<form action="{% url 'buy' market.id %}" method="post" onsubmit="return saveScroll()">
Run Code Online (Sandbox Code Playgroud)
...使用这个脚本:
<script type="text/javascript">
function saveScroll () {
var page_y = document.getElementsByTagName("body")[0].scrollTop;
window.location.href = window.location.href.split('?')[0] + '?page_y=' + page_y;
}
window.onload = function () {
if ( window.location.href.indexOf('page_y') != -1 ) {
var match = window.location.href.split('?')[1].split("&")[0].split("=");
document.getElementsByTagName("body")[0].scrollTop = match[1];
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
这里的想法是,单击按钮保存滚动位置,然后在页面重新加载/刷新后重新拾取滚动位置。但这也不起作用。
知道我做错了什么吗?