2014-02-11 2 views
1

사용자가 브라우저를 닫을 때 물건을 저장하기 위해 put 요청을 실행하려고합니다. 나는 각도를 사용하고 있으며 onbeforeunload 및 onunload 이벤트를 사용하여 시도했지만 원하는대로 작동하지 않습니다. 리소스를 업데이트하고 싶습니다.사용자가 브라우저를 닫을 때 http가 입력됩니다.

$window.onbeforeunload = function(){ 
     myResource.foo = closingBrowser(); 
     myResource.$update();} 

는 피들러 실행으로 나는이 풋 요청을하지 않는 것을 알 수있다. 내가 $window.onunload을 사용할 때가 아닙니다. 그러나 onbeforeunload에 대한 return 문을 입력하면 확인 상자가 나타나고 확인을 클릭하면 피들러가 put 요청이 완료되었음을 알립니다. 이제이 팝업을 원하지 않습니다. 사용자가 브라우저를 닫을 때 그냥 넣기를 원합니다.

이러한 방법으로이 작업을 수행 할 수있는 방법이 있습니까? 아니면 다른 방법으로 해결해야합니까 (많이 알려주십시오)?

업데이트 :

좀 더 많은 테스트를했고, 일부 일치하지 않는 행동을 발견했다. 인터넷 익스플로러 (11)에서 : return 문이 있다면 고전적인 팝업이 있습니다. 그러나 취소를 누르고 페이지로 돌아 가면 PUT 만 보냅니다. 나가기 위해 OK를 누르면 PUT이 발행되지 않습니다.

크롬 : 돌아 가기 위해 취소를 누르거나 떠나려면 확인을 계속해도 PUT은 계속 전송됩니다. 크롬에서 작동하지만 크롬을 사용하지 않는 또 다른 '해킹'(?)은 $update() 다음에 루프가 있어야합니다 (팝업이없고 원하는 동작 임). while(!myResource.$resolved){} (또는 단지 for-loop 몇 백만 번 반복하는 것도 효과가 있었지만,보기 흉한 것처럼 보였습니다.) 크롬은 실제로 PUT을 전송합니다 (IE는 그렇지 않았습니다).

IE에서 어떻게 복제 될 것이라고 생각하십니까?

나는 파이어 폭스에 대한 광범위한 테스트를 수행하지 않았지만, 조금은 크롬과 비슷하게 보였다.

답변

0

이 팝업에서 벗어날 수 없습니다 ("이 창을 닫으시겠습니까? bla bla bla ..."). 내가 가장 좋은 방법은 다음 생각 :

  • 당신은 서버에 HTTP 넣어 요청을 보내 사용자가 현재 탭 닫기는, 브라우저가 텍스트 팝업 표시됩니다

    1. 경우, HTTP 요청하면 것이다 성공 콜백을 호출, 쇼 사용자 정의 팝업 ("당신의 설정 또는 뭔가 다른이 어쩌구 어쩌구 저쩌구 저장된)
  • +0

    window.close 사용하여

  • 창 닫기 팝업없이 HTTP를 넣어 보낼 수있는 방법은 없습니다? 나는 계속하고 싶지 않아 사용자가 페이지 또는 기타 항목에 있으면 브라우저 나 탭이 닫힐 때만 메시지를 보냅니다. – Gustav

  • +0

    페이지가 닫히면 브라우저가 put 쿼리를 중단합니다. –

    관련 문제