单击浏览器的后退按钮时如何销毁会话
Posted
技术标签:
【中文标题】单击浏览器的后退按钮时如何销毁会话【英文标题】:How to destroy session when clicks on browser's back button 【发布时间】:2020-04-19 18:01:15 【问题描述】:我正在使用 laravel 中的 session->flash() 方法闪烁成功消息。 但是当用户单击返回按钮时,消息再次出现。如何解决这个问题。 我显示消息的代码是 -
@if(Session::get('success') )
<script>
swal(
text: "Session::get('success')",
button: localMsg.ok,
).then((isConfirm) =>
);
</script>
@elseif(Session::get('error'))
<script>
swal(
text: "Session::get('error')",
button: localMsg.ok,
).then((isConfirm) =>
);
</script>
@endif
【问题讨论】:
【参考方案1】:您应该销毁会话值以获得成功和错误消息
@if(Session::get('success') )
<script>
swal(
text: "Session::get('success')",
button: localMsg.ok,
).then((isConfirm) =>
);
Session::forget('success'); //Add this line to destroy value for 'success'
</script>
@elseif(Session::get('error'))
<script>
swal(
text: "Session::get('error')",
button: localMsg.ok,
).then((isConfirm) =>
);
Session::forget('error'); //Add this line to destroy value for 'error'
</script>
@endif
【讨论】:
它的删除会话。甚至不显示会话消息【参考方案2】:通过这种方式可以获取浏览器的返回按钮事件:
if (window.history && window.history.pushState)
window.history.pushState('forward', null, './#forward');
$(window).on('popstate', function()
alert('Back button was pressed.'); //here you know that the back button is pressed
//write code to hide your success message when your clicks on browser back button
);
【讨论】:
以上是关于单击浏览器的后退按钮时如何销毁会话的主要内容,如果未能解决你的问题,请参考以下文章
当我单击浏览器后退按钮或移动设备后退按钮时,保留选定的选项卡