>

history.go (-1)에 대한 값이 있는지 확인할 수 있습니까? history.previous에 직접 액세스 할 수 없다는 것을 알고 있습니다.

일부 경우 차단 될 수 있다는 것을 알고 있기 때문에 document.referrer를 멀리하려고합니다.

내가하려고하는 것이있다. 오류 페이지가 있습니다.이 페이지에는 BACK 버튼 (이력의 유일한 항목이 아닌 경우) 또는 닫기 버튼 (있는 경우)이 있습니다.

  • 답변 # 1

    if (history.length) {
        //There is history to go back to
        history.go(-1);
    }   
    
    

  • 답변 # 2

    실제로 history.length  현재 페이지가 계산되므로 항상 하나 이상입니다. 또한 앞으로 이력이있는 경우 (즉, 뒤로 버튼을 사용한 경우) 해당 페이지도 계산됩니다. 더 복잡한 검사가 필요합니다 :

    if( (1 < history.length) && document.referrer ) {
    
    

  • 답변 # 3

    히스토리의 길이가 0보다 크면 하나 이상의 히스토리 포인트가 포함됩니다.

    if (history.length)
    
    

  • 답변 # 4

    이 작업을 수행하기위한 브라우저 간 접근 방식은 없습니다. 기록 항목이없는 경우에도 Document.Referrer가 설정 될 수 있습니다.

    다음과 같은 "핵"을 생각해 냈습니다. 브라우저가 페이지를 떠나기 시작하는지 여부를 감지하기 위해 onbeforeunload 이벤트를 사용합니다. 특정 기간이 아닌 경우 대체로 리디렉션됩니다.

    window.goBack = function goBack(fallback){
      var useFallback = true;
      window.onbeforeunload = function(){
        useFallback = false;
      }
      window.history.back();
      setTimeout(function(){
        if (useFallback){ window.location.href = fallback; }
      }, 100); 
    }
    
    

    goBack("fallback.example.org") 를 사용하여이 함수를 호출 할 수 있습니다 .

    사용 사례 중 하나는 페이지에 뒤로 버튼을 추가하고 사용자가이 페이지로 직접 이동하더라도이 뒤로 버튼이 작동하는지 확인하려는 경우입니다 (예 : 책갈피, 직접 링크 등). .

    따라서 history.back ()을 수행하거나 항목이 없으면 폴백으로 리디렉션됩니다.

  • 답변 # 5

    function test() {
            document.URL = document.referrer;            
        }
    
    

  • 이전 css - jquery로 대화 상자를 만들 때 대화 상자 div를 숨기려면 어떻게합니까?
  • 다음 android - 스케일 로딩 전에 실제 Uri에서 비트 맵의 ​​사전 추측 크기