jQuery 또는 javascript로 페이지를 새로 고치거나 닫았는지 확인하고 싶습니다.페이지 새로 고침을 확인하거나 jQuery/javascript로 닫으십시오.
현재 사용자가 페이지를 탐색하거나 페이지를 새로 고치면 삭제할 데이터베이스 값이 있습니다.
값을 삭제하기 위해 AJAX 호출을 사용하고 있습니다.
는 지금, 나는 다음과 같은 코드가 있습니다 :
핸들러 :
window.beforeunload = cleanUp;
cleanUp()
방법 :
function cleanUp() {
// Check to see if it's an actual page change.
if(myActualLeave) {
$.ajax({
type: "POST",
url: "/api/cleanup",
data: { id: myLocalId },
success: function (data) {
console.log(myLocalId + " got removed from the database.");
}
});
}
// Reset the flag, so it can be checked again.
myActualLeave = true;
}
myActualLeave
내가 AJAX 때 false로 설정된 플래그가 전화가 걸려서 beforeunload
처리기를 트리거하지 않습니다.
내가 겪고있는 문제는 페이지의 링크를 클릭하면 예를 들어 Google에 대한 링크 인 경우 window.beforeunload
이 실행되지 않는다는 것입니다. 나는 이것에 대한 오해가있을 수 있지만 jQuery의 $(window).unload(...);
과 onbeforeunload
트리거를 사용해 보았습니다.
:
- 사용자가 페이지를 새로 고침,
- 사용자가 페이지에서 멀리 탐색, 또는
- 사용자가 페이지를 닫을 때 ?
편집 : 그것은 내가 멀리 이동 감지하는 click()
jQuery를 핸들러를 사용할 수있는 코멘트에 와서. 더 구체적으로 말하면 사용자가 링크를 클릭했을 때만 나는 그것을 proc하고 싶지는 않습니다. 어떤 식 으로든 페이지를 바꿀 때 작동 시키길 원합니다. 예를 들어 주소 표시 줄에 입력하면
'$ ('a ') .Click()'에서 함수를 호출 할 수 있습니다. 또는 모든 외부 링크에 클래스를 추가하고 해당 클래스에 대해 호출 할 수 있습니다. 내 하중이 새로 고침과 닫힘에서 작동 할 것이라고 생각 했나요? – Leeish
내가 포함하지 않았으므로이 질문을 포함하도록 내 질문을 편집 하겠지만, 멀리 탐색한다고 말했을 때 링크 만있는 것은 아닙니다. 사용자가 주소 표시 줄에 무언가를 입력하는 경우처럼. –
나는 이것을 사용하는 페이지가있다 :'window.onbeforeunload' 그리고 나는 방금 체크했다. URL을 입력하거나, 뒤로를 클릭하거나, 닫거나, 링크를 클릭 할 때 나에게 묻는다. 그것은 귀하의 모든 요구 사항 하에서 해고되었습니다. – Leeish