由於瀏覽器是無狀態的,在這時候捕捉瀏覽器關閉會出現兩種情況:
1.真正的關閉瀏覽器(a.點擊關閉按鈕b.右鍵關閉c.按alt+F4關閉)
2.刷新瀏覽器。
那要如何判斷區分這兩個動作呢?
Javascript程式碼處理方法:
function window.onbeforeunload() { //用户点击浏览器右上角关闭按钮或是按alt+F4关闭 if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey) { // alert("点关闭按钮"); document.getElementById("hiddenForm:hiddenBtn").click(); // window.event.returnValue="确定要退出本页吗?"; } //用户点击任务栏,右键关闭。s或是按alt+F4关闭 else if(event.clientY > document.body.clientHeight || event.altKey) { // alert("任务栏右击关闭"); document.getElementById("hiddenForm:hiddenBtn").click(); // window.event.returnValue="确定要退出本页吗?"; } //其他情况为刷新 else { // alert("刷新页面"); } }
其中event.clientX 滑鼠遊標X座標
document.body.clientWidth 窗體工作區寬度
event.clientY 滑鼠遊標Y座標
event.altKey 是否按下alt鍵
#事件捕捉方法:
<body scroll="no" onbeforeunload="return CloseEvent();" onunload="UnLoadEvent()" > </body> <script language="JavaScript" type="text/javascript"> var DispClose = true; function CloseEvent() { if (DispClose) { return "是否离开当前页面?"; } } function UnLoadEvent() { DispClose = false; //在这里处理关闭页面前的动作 } </script>
在頁面卸載之前引發onbeforeunload事件,如果使用者選擇「是」即確定卸載頁面將引發onunload事件,否則返回頁面不做任何操作。
以上是javascript如何判斷瀏覽器關閉和事件捕捉程式碼詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!