2017-10-14 77 views
1

我的要求是當用戶離開頁面而不保存表單數據時顯示自定義確認框。用戶離開頁面時在angularjs中顯示自定義確認框

我用window.onbeforeunload這個事件顯示的是谷歌瀏覽器相關的預定義確認框。當用戶更改任何表單並嘗試重新加載,製表符關閉或路由更改時,我想顯示$ mdDialog.confirm並要求用戶離開頁面或保持在同一頁面上。我如何製作一個?

+0

我不認爲這是可能的,這是設計。您可以給出的唯一通知是使用瀏覽器自己的對話框。這是因爲網頁無法無限地劫持用戶。 –

回答

1

出於安全原因,這是不能做到的。您可以在beforeunload event的MDN頁面找到更多詳細信息。

在過去,您可以返回一個顯示給用戶的自定義字符串,但是現在甚至可以忽略它。您可以做的最好的方法是指導頁面顯示您已有的標準對話框。 (並且在某些瀏覽器和某些場景中,即使該指令也可能被忽略。)

另一種方法是在頁面中包含用於離開表單的按鈕。雖然這仍然不能阻止用戶直接從頁面導航,但如果它足夠可見,在很多情況下,用戶更有可能點擊導航,而不是直接導航。它也可以作爲被動提醒,表單需要顯式保存或取消(當然取決於您的具體細節)。

相關問題