检测浏览器或制表符关闭

检测浏览器或制表符关闭

是否有任何跨浏览器的JavaScript / jQuery代码来检测浏览器或浏览器选项卡是否正在关闭,而不是由于链接被点击?



浮云间
浏览 648回答 4
4回答

一只萌萌小番薯

如果我找到你,你想知道什么时候选项卡/窗口有效关闭。好了,据我所知的唯一途径Javascript,以检测之类的东西都onunload与onbeforeunload事件。不幸的是(或者幸运的是?),当您将网站留link在浏览器或浏览器后退按钮时,这些事件也会被触发。所以这是我能给出的最佳答案,我认为你不能close在Javascript 中原生地检测到纯粹的答案。如果我在这里错了,请纠正我。

ITMISS

来自Firefox文档出于某些原因,基于Webkit的浏览器不遵循对话框的规范。一个几乎交叉的例子将接近下面的例子。window.addEventListener("beforeunload", function (e) {   var confirmationMessage = "\o/";   (e || window.event).returnValue = confirmationMessage; //Gecko + IE   return confirmationMessage;                            //Webkit, Safari, Chrome});此示例用于处理所有浏览器。

繁华开满天机

简单解决方案window.onbeforeunload = function () {     return "Do you really want to close?";};

弑天下

<body&nbsp;onbeforeunload="ConfirmClose()"&nbsp;onunload="HandleOnClose()">var&nbsp;myclose&nbsp;=&nbsp;false; function&nbsp;ConfirmClose() { &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(event.clientY&nbsp;<&nbsp;0) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event.returnValue&nbsp;=&nbsp;'You&nbsp;have&nbsp;closed&nbsp;the&nbsp;browser.&nbsp;Do&nbsp;you&nbsp;want&nbsp;to&nbsp;logout&nbsp;from&nbsp;your&nbsp;application?'; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setTimeout('myclose=false',10); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myclose=true; &nbsp;&nbsp;&nbsp;&nbsp;} } function&nbsp;HandleOnClose() { &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(myclose==true)&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//the&nbsp;url&nbsp;of&nbsp;your&nbsp;logout&nbsp;page&nbsp;which&nbsp;invalidate&nbsp;session&nbsp;on&nbsp;logout&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;location.replace('/contextpath/j_spring_security_logout')&nbsp;; &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp; }//如果您只使用一个选项卡关闭选项卡或浏览器,则可以在IE7中使用
打开App,查看更多内容
随时随地看视频慕课网APP