복붙노트

[JQUERY] window.onbeforeunload 및 window.onunload 파이어 폭스, 사파리, 오페라에서 작동하지 않는 이유는 무엇입니까?

JQUERY

window.onbeforeunload 및 window.onunload 파이어 폭스, 사파리, 오페라에서 작동하지 않는 이유는 무엇입니까?

해결법


  1. 1.불행하게도, 당신이 사용하고있는 방법은 그 브라우저에서 지원되지 않습니다. 내 대답 (이 비우호적 행동)을 지원하기 위해 나는 아래 링크를 제공했다.

    불행하게도, 당신이 사용하고있는 방법은 그 브라우저에서 지원되지 않습니다. 내 대답 (이 비우호적 행동)을 지원하기 위해 나는 아래 링크를 제공했다.

    onbeforeunload 및으로 onUnload이를 지원하기 위해 ... 오페라에서 작동하지

    으로 onUnload 이벤트가 완전히 작동하지 않지만, 당신은 사용자가 저장되지 않은 양식 페이지에서 다른 페이지로 이동하는 링크를 클릭하면 경고를 보여으로 onUnload 사용할 수 있습니다.

    으로 onUnload이 기능을 지원하는 ... 사파리에서 작동하지

    당신은 오히려으로 onUnload 대신 사파리 브라우저에서 pagehide 이벤트를 사용하여 시도 할 수 있습니다.

    으로 onUnload이 기능을 지원하는 ... 파이어 폭스에서 작동하지

    그들도 FF에서 해결책을 마련하기 위해 아직

    당신에게 행운의 환호를 바랍니다.


  2. 2.여기 즉, 파이어 폭스와 크롬의 작업 솔루션입니다 :

    여기 즉, 파이어 폭스와 크롬의 작업 솔루션입니다 :

    var myEvent = window.attachEvent || window.addEventListener;
    var chkevent = window.attachEvent ? 'onbeforeunload' : 'beforeunload'; /// make IE7, IE8 compitable
    
                myEvent(chkevent, function(e) { // For >=IE7, Chrome, Firefox
                    var confirmationMessage = 'Are you sure to leave the page?';  // a space
                    (e || window.event).returnValue = confirmationMessage;
                    return confirmationMessage;
                });
    

  3. 3.내가 jQuery의와 IE와 FF의 작업에 그것을 얻을 수 있었다 :

    내가 jQuery의와 IE와 FF의 작업에 그것을 얻을 수 있었다 :

    $(window).bind('beforeunload', function(){
    
    });
    

    대신 : 언로드,으로 onUnload, 또는 onbeforeunload


  4. 4.나는 동기 요청에 아약스 비동기 요청을 변경하여 오페라를 제외한 모든 브라우저에서으로 onUnload에 대한 해결책을 얻었다.

    나는 동기 요청에 아약스 비동기 요청을 변경하여 오페라를 제외한 모든 브라우저에서으로 onUnload에 대한 해결책을 얻었다.

    xmlhttp.open("POST","LogoutAction",false);
    

    이 오페라를 제외한 모든 브라우저에서 잘 작동합니다.


  5. 5.으로 onUnload 이벤트는 모든 브라우저에서 호출되지 않습니다. 더 나쁜, 당신은 onbeforeunload 이벤트의 반환 값을 확인할 수 없습니다. 실제로 로그 아웃 기능을 예비 성형에서 방지 우리를 그.

    으로 onUnload 이벤트는 모든 브라우저에서 호출되지 않습니다. 더 나쁜, 당신은 onbeforeunload 이벤트의 반환 값을 확인할 수 없습니다. 실제로 로그 아웃 기능을 예비 성형에서 방지 우리를 그.

    그러나이 문제를 해킹 할 수 있습니다.

    전화는입니다 onbeforeunload 이벤트에 제일 먼저 로그 아웃. 다음 사용자하라는 메시지를 표시합니다. 사용자가 로그 아웃을 취소하는 경우, 자동으로 onfocus 및 이벤트를 사용하여, 다시 그들을 로그인합니다. 일종의 뒤로,하지만 난 그것을 작동한다고 생각합니다.

    'use strict';
    
    var reconnect = false;
    
    window.onfocus = function () {
      if (reconnect) {
        reconnect = false;
        alert("Perform an auto-login here!");
      }
    };
    
    window.onbeforeunload = function () {
      //logout();
      var msg = "Are you sure you want to leave?";
      reconnect = true;
      return msg;
    };
    

  6. 6.파이어 폭스는 단순히 사용자 정의 onbeforeunload 메시지를 표시하지 않습니다. 모질라는 그들이 오해의 소지가 텍스트를 표시 할 수 있습니다 악성 사이트에서 최종 사용자를 보호하고 말한다.

    파이어 폭스는 단순히 사용자 정의 onbeforeunload 메시지를 표시하지 않습니다. 모질라는 그들이 오해의 소지가 텍스트를 표시 할 수 있습니다 악성 사이트에서 최종 사용자를 보호하고 말한다.

  7. from https://stackoverflow.com/questions/14645011/window-onbeforeunload-and-window-onunload-is-not-working-in-firefox-safari-o by cc-by-sa and MIT license