복붙노트

[JQUERY] 브라우저에서 뒤로 버튼 클릭을 감지 [중복]

JQUERY

브라우저에서 뒤로 버튼 클릭을 감지 [중복]

해결법


  1. 1.지금까지 AJAX에 관한 한 ...

    지금까지 AJAX에 관한 한 ...

    페이지의 탐색 특정 부품에 사용 AJAX는 거대한 문제이다 대부분의 웹 응용 프로그램을 사용하는 동안 다시 누르면. 나는 다른 측면에서 사실 개발자에 오랫동안이 문제에 실행 한 '버튼 수단 당신이 뭔가 잘못하고있는을 해제 할 필요'가 동의하지 않습니다. 여기 내 솔루션입니다 :

    window.onload = function () {
        if (typeof history.pushState === "function") {
            history.pushState("jibberish", null, null);
            window.onpopstate = function () {
                history.pushState('newjibberish', null, null);
                // Handle the back (or forward) buttons here
                // Will NOT handle refresh, use onbeforeunload for this.
            };
        }
        else {
            var ignoreHashChange = true;
            window.onhashchange = function () {
                if (!ignoreHashChange) {
                    ignoreHashChange = true;
                    window.location.hash = Math.random();
                    // Detect and redirect change here
                    // Works in older FF and IE9
                    // * it does mess with your hash symbol (anchor?) pound sign
                    // delimiter on the end of the URL
                }
                else {
                    ignoreHashChange = false;   
                }
            };
        }
    }
    

    지금까지 내가 크롬에서이 작품을 이야기 할 수있었습니다으로, 파이어 폭스, 아직 테스트하지 않았습니다.


  2. 2.(브라우저가 "onbeforeunload"를 지원하지 않는 경우)이 시도하십시오 :

    (브라우저가 "onbeforeunload"를 지원하지 않는 경우)이 시도하십시오 :

    jQuery(document).ready(function($) {
    
      if (window.history && window.history.pushState) {
    
        $(window).on('popstate', function() {
          var hashLocation = location.hash;
          var hashSplit = hashLocation.split("#!/");
          var hashName = hashSplit[1];
    
          if (hashName !== '') {
            var hash = window.location.hash;
            if (hash === '') {
              alert('Back button was pressed.');
            }
          }
        });
    
        window.history.pushState('forward', null, './#forward');
      }
    
    });
    

  3. 3.가장 좋은 방법은 I의 노하우

    가장 좋은 방법은 I의 노하우

             window.onbeforeunload = function (e) {
                var e = e || window.event;
                var msg = "Do you really want to leave this page?"
    
                // For IE and Firefox
                if (e) {
                    e.returnValue = msg;
                }
    
                // For Safari / chrome
                return msg;
             };
    

  4. 4.나는이 방법으로 뒤로 버튼을 검출하고 있습니다 :

    나는이 방법으로 뒤로 버튼을 검출하고 있습니다 :

    window.onload = function () {
    if (typeof history.pushState === "function") {
        history.pushState("jibberish", null, null);
        window.onpopstate = function () {
            history.pushState('newjibberish', null, null);
            // Handle the back (or forward) buttons here
            // Will NOT handle refresh, use onbeforeunload for this.
        };
    }
    

    그것은 작동하지만 난 내가 쿠키에 의해 제어하지 않고 페이지에 입력하면, 브라우저가 어떤 뒤로 버튼의 클릭없이 다시 작업을하기 때문에 내가 처음에 페이지에있어 감지하기 위해 크롬에서 쿠키를 만들어야합니다.

    if (typeof history.pushState === "function"){
    history.pushState("jibberish", null, null); 
    window.onpopstate = function () {
        if ( ((x=usera.indexOf("Chrome"))!=-1) && readCookie('cookieChrome')==null ) 
        {
            addCookie('cookieChrome',1, 1440);      
        } 
        else 
        {
            history.pushState('newjibberish', null, null);  
        }
    };
    

    }

    매우 중요 history.pushState ( "jibberish", NULL, NULL); 브라우저 기록을 복제합니다.

    어떤 사람은 내가 그것을 누가 고칠 수 알아?


  5. 5.뒤로 버튼 브라우저의 기능이기 때문에 기본 기능을 변경하기가 어려울 수 있습니다. 일부 작업 방법 그러나이있다. 이 문서를 살펴 보자 :

    뒤로 버튼 브라우저의 기능이기 때문에 기본 기능을 변경하기가 어려울 수 있습니다. 일부 작업 방법 그러나이있다. 이 문서를 살펴 보자 :

    http://www.irt.org/script/311.htm

    일반적으로, 뒤로 버튼을 비활성화 할 필요는 프로그래밍 문제 / 결함의 좋은 지표이다. 내가 세션 변수 나 양식이 이미 제출 된 저장 여부를 쿠키를 설정하는 등의 다른 방법을 찾아 것입니다.


  6. 6.난 그냥 지금까지 UI 개발의 모든 교리에 대한 위반 뒤로 버튼을 사용하는 사용자를 방지하기 위해 노력하고 Ajax를 탐색 처리하려고하지하고 있으리라 믿고있어.

    난 그냥 지금까지 UI 개발의 모든 교리에 대한 위반 뒤로 버튼을 사용하는 사용자를 방지하기 위해 노력하고 Ajax를 탐색 처리하려고하지하고 있으리라 믿고있어.

    다음은 몇 가지 가능한 솔루션입니다 : JQuery와 역사 Salajax 더 나은 아약스로 돌아 가기 버튼

  7. from https://stackoverflow.com/questions/6359327/detect-back-button-click-in-browser by cc-by-sa and MIT license