window.onbeforeunload 함수에서 AJAX를 사용하여 내 사이트의 페이지에있는 텍스트 필드를 자동 저장하려고합니다 (저장 버튼이 없으며 모두 백그라운드에서 수행됩니다).). 저장 기능은 PHP로 작성되었습니다. 나는 노력에 의해 시작 다음onbeforeunload에서 Ajax를 사용하여 필드 데이터를 자동 저장
window.onbeforeunload = function(e){
var noteelement = document.getElementById('note');
var mynote = noteelement.value;
$.post('save_my_note.php', { thenote: mynote }, function(data){});
};
연구에서, 나는 창이으로부터 함수 화재 전에 닫기 때문에 인해 아약스 호출의 비동기 특성으로, PHP 코드가 호출되지 않는다는 것을 이해하게되었습니다 섬기는 사람.
물론, 다른 사람들이 말했듯이, 대화 상자가 팝업되도록하는 반환 값을 onbeforeunload 함수에 추가하면 (즉, "계속 하시겠습니까?"상자가 나타남), 이후 작업을 수행합니다.
$.post('save_my_note.php', { thenote: mynote }, function(data){});
return mynote;
};
내가 함수에 기능을 기다립니다 있도록 비동기 AJAX에이 게시물에 호출을 변경해야했다되었습니다 대화 상자가 응답을 기다리는 동안 .post 호출은 실행 얻을 수있는 시간이 완전하지만 문법에 정통하지는 않습니다. 필자가 필요한 구문을 잘 모르겠습니다. 나는 포스트 기능 대신에 다음을 시도했다 :
$.ajax({
url: "save_my_note.php",
data: "{thenote: mynote}",
async: false
});
그러나, 그 중 하나가 작동하지 않는 것 같습니다.
누구나 onbeforeunload (또는 onunload ??) 함수를 통해 자동 저장을 동기식으로 구현하는 간단한 코드 예제가 있습니까? 나는 자바 스크립트 또는 jquery 전문가가 아니며 온라인에서 찾은 예제가 혼란 스럽다.
마지막 코드 조각에'async : false'를 입력하셨습니까? – Ivan
답변에 대한이 질문을 참조하십시오 : http://stackoverflow.com/questions/2970782/javascript-wait-until-ajax-request-finishes-to-close-page – Ivan
모바일 브라우저에서 onbeforeunload가 실행되지 않는다는 점에 유의하십시오. 그래서 당신은 모바일 시장을 먹는다면 다르게 처리해야 할 수도 있습니다. –