2014-01-07 49 views
3

我在頁面中使用Primfaces Layout組件,並且當用戶單擊菜單鏈接時,我沒有在導航中使用重定向。JSF如何在轉發到其他頁面之前顯示導航確認彈出框

即,我是不是使用faces-redirect?true並且URL在用戶導航時不改變。

我想用戶導航從當前視圖離開前,顯示確認對話框,像

「你確定要離開這個頁面了嗎?」

因此,一旦用戶點擊在OK那麼它應該轉發到其他頁面,否則它應該保持在同一頁面,如果用戶點擊CANCEL

還有一個約束是我希望這個功能只適用於幾個選定的頁面而不是全部。

解決此問題的最佳方法是什麼?

Primefaces版本:3.5
JSF版本:2.1.13
我所有的ManagedBeans在@ViewScoped

+0

當你說,你只想爲選定的頁面,這是否意味着:我想選擇頁面,該頁面上的對話框出現。或者是否意味着:當我瀏覽到選定的其他頁面時,我只希望該對話框出現?在第一種情況下,堅持使用javascript,並看到文章http://stackoverflow.com/questions/12132060/confirm-on-window-onbeforeunload –

+0

@ L-Ray:考慮我有4頁家,註冊,反饋和聯繫。當用戶進入註冊頁面並嘗試導航到任何其他頁面時,我想讓對話框觸發。 –

+0

如果你只處理你的鏈接提供的導航,只需顯示一個primefaces面板,它將提供一個按鈕,在「OK」的情況下它就像一個鏈接,而「CANCEL」按鈕將隱藏面板。我在這裏看不到任何東西。其他情況下,如果你想管理用戶關閉標籤的時間,你需要像@ L-Ray所說的那樣處理頁面卸載事件。 –

回答

0

如果你想嘗試解決從JavaScript方這個問題,無論是去

window.onbeforeunload = function(e) { 
    return 'Dialog text here.'; 
};  

並看到與被點擊的鏈接無關的對話框(請參閱https://stackoverflow.com/a/12132076/1269441)。或嘗試添加

onclick="if (!confirm('Your dialog-text here')) {return false;}" 

您希望顯示對話框的選擇。

+0

嘿L-Ray ..,沒有這個方法不工作..我使用FORWARD而不是REDIRECT,所以URL不會刷新。 –

+0

'window.onbeforeunload'在我的Firefox 26.0上運行,下面的'onclick'-方法也是如此。卸載工作獨立於轉發或重定向(至少在上面描述的瀏覽器上)。 –

相關問題