2011-08-25 135 views
0

嗨,我卡在這一點。如何在窗口關閉時打開彩盒。jquery colorbox打開窗口關閉

我可以點擊任何div類打開一個colorbox。

我想要一個colorbox在用戶點擊瀏覽器或窗口的關閉按鈕時彈出。

任何幫助在這裏將不勝感激。

由於提前

回答

0

你的意思window.onbeforeunload

 window.onbeforeunload = function() { 
      // do something here 
     }; 
+0

這不會,如果他們關閉唯一的瀏覽器窗口 – JamesHalsall

+0

它的工作在IE9工作,鉻和FF 6.其他的人我沒查。 – jani

+0

「工作」是什麼意思? 如果用戶決定這樣做,用戶仍然可以離開該頁面,唯一發生的事情就是瀏覽器彈出問題,他確信這一點。 – WTK

0

通常,您不能通過向用戶顯示colorbox(或其他任何相關內容)來停止用戶離開頁面。

然而,也有可以聽onbeforeunloadonunload的兩個事件。 通過在beforeunload事件的處理函數中設置事件對象的returnValue屬性,您可以告訴瀏覽器彈出一個問題窗口,詢問用戶是否想要留在本站點或離開。如果用戶決定保持onunload狀態,但如果他決定離開,則不會觸發事件,但無法取消該操作,只能延遲實際休假。您可以通過使用alert()或某些運行指定時間的循環來延遲離開。檢查下面的例子。

// showLeaveWarning is some imaginary variable that determines wherever you want to show the warning about leaving the page 
beforeUnloadHandler = function(e) { 
    if (showLeaveWarning) {    
     var e = e || window.event, msg = "Don't leave, please!" 
     if (e) { 
      e.returnValue = msg; // Chrome won't respect the msg you're trying to show but Firefox will 
     } 
     return msg; 
    } 
} 
unloadHandler = function(e) { 
     // you can do something here - like sending an ajax request to your application to know that user X has left the page 
     var a = (new Date()).getTime() + 1500; // 1500 is a number of ms that loop will run for 
     // the loop below is necessary to try to force the browser to wait couple more seconds while (for example) the ajax request is finished 
     while ((new Date()).getTime() < a) {} // do this loop for 1500ms (Firefox v6 seems to wait for as long as you please (by changin 1500 to something else in line above) 
    } 
} 
window.onunload = unloadHandler; 
window.onbeforeunload = beforeUnloadHandler;