2012-02-23 178 views
1

我正在寫JavaScript,點擊窗口中的關閉按鈕,我應該得到一個確認框。在確認框中,我應該顯示一些消息,應該有取消和繼續按鈕。具有窗口關閉事件的一些功能的自定義確認框

單擊取消時,窗口不應該關閉,但按繼續後,應將窗口重定向到另一個jsp。

有人可以幫我用這段代碼嗎?我嘗試使用自定義確認框,但似乎只返回一個字符串,它不能用於重定向到一個頁面。

+2

如何展示你迄今爲止所做的事情。我們無法修復我們看不到的代碼。的 – 2012-02-23 15:15:28

+0

可能重複[跨瀏覽onbeforeunload?](http://stackoverflow.com/questions/7389554/crossbrowser-onbeforeunload) – Aelios 2014-05-13 08:22:43

回答

1

這是不可能的。關閉窗口時,您不能將用戶重定向到其他頁面。這是出於安全原因。

要在關閉窗口時顯示確認框,可以使用onbeforeunload事件。這將詢問用戶是否希望離開頁面。確認框由瀏覽器呈現,您可以自定義的是文本。

$(window).bind('beforeunload', function(){ 
    return 'Are you sure you want to leave?'; 
}); 

當用戶離開頁面,則可以使用onunload事件,但同樣,你不能對它們進行重定向(你可以做一個AJAX調用,但你不能將瀏覽器重定向)。

$(window).bind('unload', function(){ 
    console.log('bye'); // Some browsers may block this. 
         // Chrome blocks alerts in this event. 
}); 
+0

感謝...我已經試圖把該消息,這不是一個問題,但我需要繼續按鈕在確認框中將其重定向到另一個jsp頁面...是否有可能?如果有,請告訴我如何? – 2012-02-23 15:27:20

+0

@VamsiVaranasi:不,那是不可能的。 – 2012-02-23 15:29:26

+0

你可以建議任何其他方式,以便我可以得到一個對話框,當我按下關閉窗口按鈕。並且該對話框有兩個按鈕,我可以用來重定向用戶點擊繼續到另一個jsp。 – 2012-02-23 15:34:48

0

檢查這個例子中,它可以幫助你走出

function setConfirmUnload(on){ 
    window.onbeforeunload = (on) ? unloadMessage : null; 
} 

function unloadMessage(){ 
    return "Are you sure you want to leave this page"; 
} 

setConfirmUnload(true)啓用確認或假,如果你想允許他們關閉屏幕而不發出警告(如果你有一個關閉按鈕實例)。

你也可以試試這個(鏈接:http://api.jquery.com/unload/

$(window).unload(function(){ 
    alert("Bye now!"); 
}); 
+0

注意:Chrome(可能還有其他瀏覽器)在'onunload'事件中阻止'alert'。 – 2012-02-23 15:22:37

0

您需要綁定一個處理程序onbeforeunload事件,因爲沒有你想要將有可能與onunload事件(的功能實在是太晚了)。

var myFunction = function() { 
    return "Are you sure you want to leave the page?"; 
}; 

window.onbeforeunload = myFunction; 

據我所知,是沒有辦法的確認框是由瀏覽器處理,以應對用戶的輸入。