[英]How to track browser refresh/back/tab close and browser close event in javascript or jquery
我正在使用 onbeforeunload 功能。 当任何人单击浏览器后退按钮、浏览器刷新按钮、浏览器选项卡关闭按钮和浏览器关闭按钮时,我想提醒不同的消息。那么我如何跟踪 onbeforeUnload 函数中的所有事件。
我的代码结构是这样的
<body onbeforeunload="return closePage();">
<script type="text/javascript">
function closePage() {
if(back button click){
alert("back button");
} else if(refresh button click || f5){
alert("refresh button click");
} else if(browser tab close){
alert("tab close");
} else {
alert("browser closed");
}
}
</script>
有什么想法可以解决这个问题吗? 非常感谢。
据我所知,你想要的东西是不可能的。 出于安全原因,大多数浏览器都不允许这些事情。
但是,您可以捕捉到一些东西。 就像f5
键上的keydown
。 这样你就可以在“onbeforeunload”函数运行之前在那里做一些事情,如果你愿意的话。
但是,例如,您不能在“后退”按钮上绑定事件。 或者“ctrl+r”。
因此,恐怕您将不得不重新考虑您的选择,并采用其他解决方案。
非常感谢您的回复。但我找到了一些代码
if(window.event){
if (window.event.clientX < 40 && window.event.clientY < 0)
{
alert("Backbutton is clicked");
}
else
{
return exitPage();
}
}
else{
if(event.currentTarget.performance.navigation.type == 2)
{
alert("Back button click in mozilla");
}
if(event.currentTarget.performance.navigation.type == 1)
{
return exitPage();
}
}
使用此代码我可以跟踪后退按钮事件,但它只能在 IE 中工作
您可以在客户关闭选项卡之前做一些小事。 javascript 检测浏览器关闭选项卡/关闭浏览器,但如果您的操作列表很大并且选项卡在完成之前关闭,您将无能为力。 你可以试试,但根据我的经验,不要依赖它。
window.addEventListener("beforeunload", function (e) {
var confirmationMessage = "\o/";
/* Do you small action code here */
(e || window.event).returnValue = confirmationMessage; //Gecko + IE
return confirmationMessage; //Webkit, Safari, Chrome
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.