var vue = new Vue({ el: '#app', methods: { //添加beforeunload監聽事件 createBeforeunloadHandler() { //window.addEventListener('beforeunload', e => this.beforeunloadHandler(e)); window.addEventListener('beforeunload', this.beforeunloadHandler, false); }, //移除beforeunload事件 destroyedBeforeunloadHandler() { //window.removeEventListener('beforeunload', e => this.beforeunloadHandler(e));//錯誤方法,無法移除 window.removeEventListener('beforeunload', this.beforeunloadHandler, false); //this.rowEditEnable = 0; }, //beforeunload監聽事件 beforeunloadHandler(e) { e.returnValue = "確定要關閉窗口嗎?"; console.log("釋放權限操作"); //釋放權限操作,無阻塞 //用戶點擊取消后執行,恢復操作 setTimeout(function () { setTimeout(function () {
console.log("恢復用戶權限操作");
}, 50) }, 50); }, }, beforeDestroy() { //在 beforeDestroy 鈎子移除beforeunload事件 this.destroyedBeforeunloadHandler(); }, });