Vue 감청 창 닫 기 이벤트 구현 및 창 닫 기 전에 요청 보 내기
마침내 이 문 제 를 해결 하 였 습 니 다.코드 는 다음 과 같 습 니 다.
mounted() {
window.addEventListener('beforeunload', e => this.beforeunloadHandler(e))
window.addEventListener('unload', e => this.unloadHandler(e))
},
destroyed() {
window.removeEventListener('beforeunload', e => this.beforeunloadHandler(e))
window.removeEventListener('unload', e => this.unloadHandler(e))
},
methods: {
beforeunloadHandler(){
this._beforeUnload_time=new Date().getTime();
},
unloadHandler(e){
this._gap_time=new Date().getTime()-this._beforeUnload_time;
debugger
//
if(this._gap_time<=5){
// , ,
if(!this.showLoginButton){
$.ajax({
url: '/pictureweb/user/remove',
type: 'get',
async:false, // false,
})
}
}
},
}
window.beforeunload 이 벤트 는 window.unload 이벤트 전에 실 행 됩 니 다.동시에 ajax 요청 방식 은 동기 화 요청 이 어야 하기 때문에 axios 를 사용 할 수 없습니다.axios 는 동기 화 요청 을 수행 할 수 없 기 때 문 입 니 다.사용자 가 현재 웹 페이지 를 닫 을 때 알림 을 꺼 내 는 방법
효 과 는 아래 그림 과 같다.
정상 js 페이지 처리 방식
window.onbeforeunload = function (e) {
e = e || window.event;
// IE8 Firefox 4
if (e) {
e.returnValue = ' ';
}
// Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+
return ' ';
};
vue 처리 방식
let _this = this
window.onbeforeunload = function (e) {
if (_this.$route.name == "dyyPerformanceCenterSale") {
e = e || window.event;
// IE8 Firefox 4
if (e) {
e.returnValue = ' 1111';
}
// Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+
return ' 222';
} else {
window.onbeforeunload = null
}
};
많은 친구 들 이 말 한 것 이 실현 되 지 않 았 다 는 것 에 대해 저 는 mounted 에 방법 을 상세 하 게 설명 한 다음 에 route name 을 현재 페이지 로 바 꾸 는 것 을 기억 합 니 다.이상 의 Vue 는 감청 창 닫 기 이 벤트 를 실현 하고 창 이 닫 히 기 전에 요청 을 보 내 는 것 이 여러분 에 게 공 유 된 모든 내용 입 니 다.참고 가 되 고 많은 응원 부 탁 드 리 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Vue Render 함수로 DOM 노드 코드 인스턴스 만들기render에서createElement 함수를 사용하여 DOM 노드를 만드는 것은 직관적이지 않지만 일부 독립 구성 요소의 디자인에서 특수한 수요를 충족시킬 수 있습니다.간단한 렌더링 예는 다음과 같습니다. 또한 v...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.