我正在使用 Oracle JET 開發(fā)單頁應(yīng)用程序。在我正在構(gòu)建的頁面中,我試圖在用戶嘗試離開頁面而不保存更改時(shí)提醒他們。因此,當(dāng)離開頁面時(shí),我想:攔截路由。檢查是否有任何變化。如果有更改,請(qǐng)彈出一個(gè)窗口。如果沒有任何未保存的更改,請(qǐng)繼續(xù)路由。我相信這應(yīng)該可以使用 ojRouter (此處的文檔鏈接),但我還沒有讓它工作。我已經(jīng)嘗試了很多方法,但這是我到目前為止的結(jié)果:編輯:我已經(jīng)更進(jìn)一步并成功地訪問了 canExit 屬性,我在下面編輯了我的代碼塊。但是,這仍然不會(huì)阻止路由。oj.Router.sync().then(() => { const letrouterState = oj.Router.rootInstance; letrouterState.currentState().canExit = ableToExit();});function ableToExit() { let canExit; //function that will check if the page has unsaved changes if (ableToExit()) { canExit = false; } else { canExit = true; } return canExit;}我也嘗試過使用window.onhashchange. 但是,這只會(huì)在打開我的頁面時(shí)觸發(fā)一個(gè)事件,而不是在離開它時(shí)觸發(fā)。我希望我把我的問題說清楚了,如果需要的話,我很樂意澄清我的任何要求。有人可以幫助我嗎?提前感謝您的時(shí)間。
OJET - 我如何在離開我的頁面之前提醒用戶?
千萬里不及你
2022-10-27 15:16:17