복붙노트

[JQUERY] 자바 스크립트 전에 페이지를 떠나

JQUERY

자바 스크립트 전에 페이지를 떠나

해결법


  1. 1.으로 onUnload (또는 onbeforeunload) 다른 페이지로 사용자를 리디렉션 할 수 없습니다. 이 보안상의 이유로입니다.

    으로 onUnload (또는 onbeforeunload) 다른 페이지로 사용자를 리디렉션 할 수 없습니다. 이 보안상의 이유로입니다.

    당신은 사용자 잎 전에 페이지를 프롬프트를 표시 할 경우, 사용 onbeforeunload :

    window.onbeforeunload = function(){
      return 'Are you sure you want to leave?';
    };
    

    또는 jQuery로 :

    $(window).bind('beforeunload', function(){
      return 'Are you sure you want to leave?';
    });
    

    가 페이지를 떠나거나 페이지에 머물 선택하면하지, 당신이 그들을 리디렉션 할 수 없습니다하려는 경우는 사용자 요청합니다. 그들이 떠날 선택하면 그들이 가고 그것을 말한 경우, 브라우저는 이동합니다.

    페이지가 언로드되기 전에 물건을 수행으로 onUnload 사용할 수 있지만, 당신은 거기 (으로 onUnload 내부 크롬 14+ 블록 경고)에서 리디렉션 할 수 없습니다 :

    window.onunload = function() {
        alert('Bye.');
    }
    

    또는 jQuery로 :

    $(window).unload(function(){
      alert('Bye.');
    });
    

  2. 2.당신은 또한 양식의 상태를 감지이 코드는 변경 여부.

    당신은 또한 양식의 상태를 감지이 코드는 변경 여부.

    $('#form').data('serialize',$('#form').serialize()); // On load save form current state
    
    $(window).bind('beforeunload', function(e){
        if($('#form').serialize()!=$('#form').data('serialize'))return true;
        else e=null; // i.e; if form state change show warning box, else don't show it.
    });
    

    당신은 구글 JQuery와 양식 직렬화 기능이 모든 형태의 입력을 수집하고 배열에 저장합니다 수 있습니다. 나는이 충분히 설명 할 것 같아요 :)


  3. 3.이는 현재 페이지를 떠나지에서 알려드립니다

    이는 현재 페이지를 떠나지에서 알려드립니다

    <script type='text/javascript'>
    function goodbye(e) {
        if(!e) e = window.event;
        //e.cancelBubble is supported by IE - this will kill the bubbling process.
        e.cancelBubble = true;
        e.returnValue = 'You sure you want to leave?'; //This is displayed on the dialog
    
        //e.stopPropagation works in Firefox.
        if (e.stopPropagation) {
            e.stopPropagation();
            e.preventDefault();
        }
    }
    window.onbeforeunload=goodbye; 
    
    </script>
    

  4. 4.내가 저장하지 않은 데이터를 바로 확인 메시지를 보여주기 위해 한 일이

    내가 저장하지 않은 데이터를 바로 확인 메시지를 보여주기 위해 한 일이

    window.onbeforeunload = function () {
                if (isDirty) {
                    return "There are unsaved data.";
                }
                return undefined;
            }
    

    반환 확인을 비활성화합니다 "정의되지 않은"

    참고 : IE에서 작동하지 않습니다 "널 (null)"를 반환

    또한 당신은 확인을 해제하는 "정의되지 않은"를 사용할 수 있습니다

    window.onbeforeunload = undefined;
    

  5. 5.크롬 14+와 popop을하려면 다음을 수행해야합니다 :

    크롬 14+와 popop을하려면 다음을 수행해야합니다 :

    jQuery(window).bind('beforeunload', function(){
        return 'my text';
    });
    

    그가 머물거나 떠나하려는 경우 사용자는 메시지가 표시됩니다.


  6. 6.당신은 항상 페이지를 떠나기 전에 사용자에게 다음 한 줄을 사용할 수 있습니다.

    당신은 항상 페이지를 떠나기 전에 사용자에게 다음 한 줄을 사용할 수 있습니다.

    window.onbeforeunload = s => "";
    

    페이지에 뭔가가 수정되었을 때 사용자에게 물어,이 대답을 참조하십시오.


  7. 7.내가 사용하는, 그래서 여기에 솔루션의 대부분은 나를 위해 작동하지 않은 사람은 여기

    내가 사용하는, 그래서 여기에 솔루션의 대부분은 나를 위해 작동하지 않은 사람은 여기

    나는 또한 확인 상자를 허용하는 변수를 추가하거나하지

    window.hideWarning = false;
    window.addEventListener('beforeunload', (event) => {
        if (!hideWarning) {
            event.preventDefault();
            event.returnValue = '';
        }
    
    });
    

  8. 8.보통은 사용자가 양식의 변화를 만든 경우,이 메시지를 보여주고 싶은,하지만 그들은 저장되지 않습니다.

    보통은 사용자가 양식의 변화를 만든 경우,이 메시지를 보여주고 싶은,하지만 그들은 저장되지 않습니다.

    메시지를 보여주기 위해이 방법을 가지고, 사용자가 변경된 경우에만 뭔가

    var form = $('#your-form'),
      original = form.serialize()
    
    form.submit(function(){
      window.onbeforeunload = null
    })
    
    window.onbeforeunload = function(){
      if (form.serialize() != original)
        return 'Are you sure you want to leave?'
    }
    

  9. 9.

    <!DOCTYPE html>
    <html>
    <body onbeforeunload="return myFunction()">
    
    <p>Close this window, press F5 or click on the link below to invoke the onbeforeunload event.</p>
    
    <a href="https://www.w3schools.com">Click here to go to w3schools.com</a>
    
    <script>
    function myFunction() {
        return "Write something clever here...";
    }
    </script>
    
    </body>
    </html>
    

    https://www.w3schools.com/tags/ev_onbeforeunload.asp


  10. 10.그냥이 좀 더 활성화 도움 및 비활성화

    그냥이 좀 더 활성화 도움 및 비활성화

    $(window).on('beforeunload.myPluginName', false); // or use function() instead of false
    $(window).off('beforeunload.myPluginName');
    
  11. from https://stackoverflow.com/questions/7080269/javascript-before-leaving-the-page by cc-by-sa and MIT license