뒤로가기 막는 방법이 아니라

지금 페이지가 뒤로가기로 왔는지 아는 방법을 써보려고 한다!

 

// onpageshow의 경우 page 호출되면 무조건 실행됨

window.onpageshow = function (event){

    //뒤로가기로 페이지 접근했는지 확인
    if(event.persisted || (window.performance && window.performance.navigation.type == 2)){

        //쓰고 싶은 코드
        
    }
}

 

이렇게 하면 지금 해당 페이지가 뒤로가기로 접근했는지 확인할 수 있다!

하지만 막상 코드를 입력해보면 navigation.type == 2 부분이 deprecated 되어 취소선이 그어져있는 걸 볼 수 있다.

그대로 써도 기능은 하지만 영 찝찝하다면 밑에 내용으로 쓰면 된다!

 

// onpageshow의 경우 page 호출되면 무조건 실행됨

window.onpageshow = function (event){     //뒤로가기로 페이지 접근했는지 확인
    if(event.persisted || (window.performance && window.performance.navigation.type == 2) || (window.performance.getEntriesByType("navigation")[0].type == "back_forward")){

        //쓰고 싶은 코드
        
    }
}

 

if문 안에 새롭게 window.performance.getEntriesByType("navigation")[0].type == "back_forward" 가 추가된 걸 볼 수 있다.

window.performance.getEntriesByType("navigation")[0].type은 웹페이지의 탐색유형을 반환하는 코드이고,

back_foward는 해당 페이지가 뒤로가기나 앞으로가기로 왔는지 인식해준다!

 

반응형

+ Recent posts