728x90
스크립트를 사용하여 자동으로 창이나 탭을 닫으려고 할 때
Scripts may close only the windows that were opened by them.
요런 에러가 발생하는 경우가 있다.
중복창이 생성되는걸 어떻게든 막아야하는 상황에서 close가 안먹혀서 다소 곤란해는데
아래 소스코드를 사용하여 구현했다.
window.onload=function(){
if (localStorage.getItem('check_windows')==1) {
if (confirm("이미 생성 된 화면이 있습니다.")) {
// 취소(아니오) 버튼 클릭 시 이벤트
closeOverlap();
} else {
// 확인(예) 버튼 클릭 시 이벤트
closeOverlap();
}
} else {
localStorage.setItem("check_windows",1);
}
}
window.onbeforeunload=function(){
//정상적으로 종료 시, set value 0
localStorage.setItem("check_windows",0);
}
var closeOverlap = function() {
//비정상적으로 종료 시, set value 1
var userAgent = navigator.userAgent;
if (userAgent.indexOf("Firefox") != -1
|| userAgent.indexOf("Chrome") != -1) {
window.location.href = "about:blank";
} else {
window.opener = null;
window.open("", "_self");
window.close();
}
localStorage.setItem("check_windows",1);
}
728x90
'Dev's > Web' 카테고리의 다른 글
스프링부트 입문 - 2 - (1) | 2023.10.16 |
---|---|
스프링부트 입문 - 1 - (1) | 2023.10.15 |
[Dev's] VideoJs 영상 플레이어 Reset하기 (0) | 2022.05.10 |
[Dev's] Tiles 팝업에는 적용되지 않도록 설정하기 (0) | 2022.05.04 |
[Dev's] 스프링 스케쥴러 설정 시, 변수값 넣어서 동적생성하기 (0) | 2022.01.06 |