2013-10-09 35 views
2

我想在瀏覽器窗口/選項卡上關閉自定義彈出窗口。在瀏覽器窗口/選項卡上打開自定義彈出窗口關閉

詳細地說,如果用戶點擊瀏覽器窗口/標籤頁關閉按鈕,一個自定義的彈出窗口會顯示一些內容,或者可能有一些選項要求關閉或繼續該頁面。

這裏是代碼只把默認警報彈出:

window.onbeforeunload = function() { 
       var message = 'Do you want to leave this page?'; 
       return message; 
      } 
+4

不,不,不這樣做,這是一個可怕的用戶體驗。如果用戶點擊關閉該選項卡,用戶希望該選項卡關閉,並顯示一條消息提醒垃圾網站。 – elclanrs

+0

感謝您的寶貴話語......但暫時我想實現它的一個重要原因。 – Mufeed

回答

-4

如果你打開使用jQuery UI,那麼你可以使用Dialog。簡單,看起來有吸引力

2

我也建議你不要這樣做,但畢竟,你問了一個問題,值得回答。

<script type="text/javascript"> 
    var popit = true; 
    window.onbeforeunload = function() { 
      if(popit == true) { 
       popit = false; 
       return "Are you sure you want to leave?"; 
      } 
    } 
</script> 

這個腳本就可以了(http://jsfiddle.net/SQAmG/3/) ,並確保它只會彈出一次(到如果他決定留下來一次不打擾用戶)。

+0

我試過,但沒有運氣:(能否請您提供的jsfiddle網址? – Mufeed

+0

http://jsfiddle.net/SQAmG/5/ 看到這個,現在你會更好地理解..,可能不能正確解釋。 需要這個彈出窗口在關閉時可見,而不是該默認的警報消息。 – Mufeed

+0

你不能使用自己的對話框來覆蓋默認的,這個問題已經被問到,並得到了很好的答案http://stackoverflow.com /問題/ 6063522/jQuery的beforeunload/6065085#6065085 – Dementic

0

您正在討論的功能是window.onbeforeunload事件,不幸的是,它可以自定義的唯一方法是爲用戶提供自定義字符串消息,因爲濫用的可能性非常高。

在MSDN上的Internet Explorer的API參考了規定:

The default statement that appears in the dialog box, "Are you sure you want to navigate away from this page? ... Press OK to continue, or Cancel to stay on the current page.", cannot be removed or altered. 

我認爲這意味着該對話框本身不能改變,所有你能做的就是提供一個附加的特定上下文信息。我無法找到Chrome的相同參考,但它似乎是同一個故事。

window.onbeforeunload = function() { 
    //all you can do is provide a message.. 
    return "you have unsaved changes, if you leave they will be lost"; 
} 
+0

如果我把東西里面 window.onbeforeunload =函數(){// 所有你能做的就是提供消息.. 不工作並關閉窗口通過點擊默認警報 – Mufeed

0
window.onbeforeunload = function (e) 
{ 
    e = e || window.event; 

     e.returnValue = 'You want to leave ? '; 


}; 

jsFiddle

+0

它不是真的我在問什麼?看起來像我試過的一樣。但真的很感謝時間。 – Mufeed

+0

http://jsfiddle.net/SQAmG/5/ 看到這個現在你會明白更好..,可能無法正確解釋。 需要在關閉時顯示此彈出窗口而不是該默認警報消息。 – Mufeed

相關問題