如何在javascript或jquery中跟踪浏览器刷新/返回/制表符关闭和浏览器关闭事件

我正在使用onbeforeunload函数。 我想在任何一次单击浏览器后退按钮,浏览器刷新按钮,浏览器选项卡关闭按钮和浏览器关闭按钮时提醒不同的消息。那么我如何跟踪onbeforeUnload函数内的所有事件。

我的代码结构就是这样

  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"); } }  

有什么想法解决这个问题? 非常感谢。

据我所知,你想要的是不可能的。 出于安全考虑,大多数浏览器都不允许这类内容。

但是,你可以抓住一些东西。 就像f5键上的keydown一样。 这样你可以在“onbeforeunload”函数运行之前做一些事情,如果你愿意的话。

但是你不能在“后退”按钮上绑定一个事件。 或者“ctrl + r”。

所以我担心你不得不重新考虑你的选择,并采取其他解决方案。

非常感谢你的回复。但我找到了一些代码

如果(window.event){

  if (window.event.clientX < 40 && window.event.clientY < 0) { alert("Backbutton is clicked"); } else{ return exitPage(); } } 

其他{

  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 }); 

https://developer.mozilla.org/en-US/docs/Web/Reference/Events/beforeunload?redirectlocale=en-US&redirectslug=DOM/Mozilla_event_reference/beforeunload