DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> JS針對浏覽器窗口關閉事件的監聽方法集錦
JS針對浏覽器窗口關閉事件的監聽方法集錦
編輯:關於JavaScript     

本文實例總結了JS針對浏覽器窗口關閉事件的監聽方法。分享給大家供大家參考,具體如下:

方式一:(適用於IE浏覽器,而且刷新不提示,只在點擊浏覽器關閉按鈕的時候提示)

<script type="text/javascript">
window.onbeforeunload=onclose;
function onclose()
{
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{
return "您要離開嗎?";
}
}
</script>

方式二:適用於IE和FF,不區分刷新和關閉

<script type="text/javascript">
  window.onbeforeunload = onbeforeunload_handler;
  window.onunload = onunload_handler;
  function onbeforeunload_handler(){
    var warning="確認退出?";
    return warning;
  }
  function onunload_handler(){
    var warning="謝謝光臨";
    alert(warning);
  }
</script>

方式三:適用於IE和FF,不區分刷新和關閉,最簡單的

<script type="text/javascript">
window.onbeforeunload=onclose;
function onclose()
{
return "您確定退出嗎?";
}
</script>

方式四:適用於IE和FF,不區分刷新和關閉,稍復雜的

<script language="javascript">
var MSG_UNLOAD="如果你此時離開檔案系統,所做操作信息將全部丟失,是否離開?";
var UnloadConfirm = {};
//啟用監聽浏覽器刷新、關閉的方法
UnloadConfirm.set = function(confirm_msg){
  window.onbeforeunload = function(event){
    event = event || window.event;
    event.returnValue = confirm_msg;
  }
}
//關閉監聽浏覽器刷新、關閉的方法
UnloadConfirm.clear = function(){
  window.onbeforeunload = function(){};
}
UnloadConfirm.set(MSG_UNLOAD);
</script>

方式五:只適用於IE6下的關閉按鈕和快捷鍵關閉的,刷新不提示

<script type="text/javascript">
window.onbeforeunload=onclose;
function onclose()
{
var warnning = '<fmt:message key="systemMessage.exitWarning" />';
var beforeExit='<fmt:message key="systemMessage.beforeExitWarning" />';
 if(event.clientY<0 && event.clientX>document.body.clientWidth-20 || event.clientY<0 && event.clientX<20 ||
event.altKey || event.ctrlKey || event.clientY>document.body.clientHeight){
alert(beforeExit);
return warnning;
}
}
</script>

另附判斷浏覽器類型的JS

<script type="text/javascript">
    var Sys = {};
    var ua = navigator.userAgent.toLowerCase();
    if (window.ActiveXObject)
      Sys.ie = ua.match(/msie ([\d.]+)/)[1]
    else if (document.getBoxObjectFor)
      Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1]
    else if (window.MessageEvent && !document.getBoxObjectFor)
      Sys.chrome = ua.match(/chrome\/([\d.]+)/)[1]
    else if (window.opera)
      Sys.opera = ua.match(/opera.([\d.]+)/)[1]
    else if (window.openDatabase)
      Sys.safari = ua.match(/version\/([\d.]+)/)[1];
    //以下進行測試
    if(Sys.ie) document.write('IE: '+Sys.ie);
    if(Sys.firefox) document.write('Firefox: '+Sys.firefox);
    if(Sys.chrome) document.write('Chrome: '+Sys.chrome);
    if(Sys.opera) document.write('Opera: '+Sys.opera);
    if(Sys.safari) document.write('Safari: '+Sys.safari);
</script>

區分浏覽器,IE和FF分別處理(奇怪的是,IE下有時候失效)

<script type="text/javascript">
window.onbeforeunload=onclose;
function onclose()
{
var Sys = {};
var warnning = '<fmt:message key="systemMessage.exitWarning" />';
var ua = navigator.userAgent.toLowerCase();
if (window.ActiveXObject)
  Sys.ie = ua.match(/msie ([\d.]+)/)[1]
else if (document.getBoxObjectFor)
  Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1]
if(Sys.ie) {//for IE
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{
window.event.returnValue = warnning ;
}
}
if(Sys.firefox) //for FF
return warnning;
}
</script>

最簡單的判斷浏覽器類型的方法

<script type="text/javascript">
if(-[1,]){
   alert("這不是IE浏覽器!");
}else{
   alert("這是IE浏覽器!");
}
</script>

[1,]在標准浏覽器會返回字符串"1",相當於調用[1,].toString,
,IE則返回"1,"。但是這樣IE與標准都會通過檢測,因此使用負號強制轉換為數字,

標准能成功轉換為1,1會在if中自動轉換為true,而IE則轉換為NaN,再自動轉換為false!

更多關於JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript中json操作技巧總結》、《JavaScript切換特效與技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》

希望本文所述對大家JavaScript程序設計有所幫助。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved