我需要在从$.post()
verifystudent.html:
$.post('students/verify.php',
function(results){
preventdefault();
location.replace("verifystudent.html");
window.location.href = "completed/student_result.html;
}
基本上,当收到verifystudent.html
的数据时,它应移至student_result.html
,当点击浏览器后退按钮时,应避免转到verifystudent.html
。我怎么能这样做?
答案 0 :(得分:1)
尝试使用此脚本会阻止浏览器的后退按钮,因此请在verifystudent.html
中使用它<script type = "text/javascript" >
history.pushState(null, null, 'pagename');
window.addEventListener('popstate', function(event) {
history.pushState(null, null, 'pagename');
});
</script>
希望这有帮助。
答案 1 :(得分:0)
使用SessionStorage保存应用程序的状态。您可以创建一个密钥来标记学生已经过验证。
加载验证页面时检查此密钥,如果学生已经过验证,请使用location.replace
更改网址。
另请阅读this有关阻止用户访问上一页的文章。
答案 2 :(得分:0)
对于您的第二个问题“,当点击浏览器后面时,应该避免去验证执行问题”
我正在搜索相同的问题,我在网站上找到了以下代码。想在这里分享一下:
function noBack()
{
window.history.forward()
}
noBack();
window.onload = noBack;
window.onpageshow = function(evt){ if(evt.persisted) noBack(); }
window.onunload = function(){ void(0); }
然而,正如开发人员的数量所指出的那样,这绝不是一种好的做法,应该避免出于各种原因。
答案 3 :(得分:0)
您可以使用navigation
上的JQuery verifystudent.html
事件将用户发送到所需的页面
$(window).on("navigate", function (event, data) {
var direction = data.state.direction;
if (direction == 'back') {
window.location.href = "completed/student_result.html;
}
}