Frontend/javaScript

iframe sesstion timeout

dddzr 2023. 10. 13. 14:52

iframe을 이용하는 화면에서 sesstion timeout이 발생했을 때 로그인 페이지로 이동해야하는데

iframe 영역안에서 login페이지로 가는 경우가 있습니다.

 

login페이지의 js에 아래와 같이 작성하면 됩니다.

$(document).ready(function(){
     if ( self !== top ) {
        top.location.href = "/";
     }
});

$(document).ready(function(){...});: 문서(페이지)가 로드될 때 실행되는 jQuery의 함수입니다. 이는 페이지의 모든 요소가 로드된 후에 스크립트가 실행되도록 보장합니다.

if (self !== top) { ... }: 현재 페이지(self)가 최상위 레벨 페이지(top)가 아닌 경우를 검사합니다. 이는 현재 페이지가 iframe 내부에서 실행 중이거나 다른 프레임 안에서 실행 중인 경우를 의미합니다.

top.location.href = "/";: 현재 페이지가 최상위 레벨 페이지가 아닌 경우, 최상위 레벨 페이지로 리디렉션합니다. 여기서는 루트 경로("/")로 이동하도록 설정되어 있습니다.