새창 열림과 새창 닫기 안되는 현상발견 - 브라우저 보안변경으로 10월5일부터

새창 열림과 새창 닫기 안되는 현상발견 - 브라우저 보안변경으로 10월5일부터

QA

새창 열림과 새창 닫기 안되는 현상발견 - 브라우저 보안변경으로 10월5일부터

본문

아래와 같이 html을 만들어서 브라우저를 로드하면 새창을 열리고 버튼을 누르면 새창으로 열린 브라우저를 닫는 코드인데 브라우저 업데이트 이후에 창이 안닫아지네요. 

바로 전에 

예전에는 잘 되던것이

창이름이 고정인데도 크롬이나 엣지에서

모두 창이름 고정이 안되고 계속해서 새창이 열리는데

혹시 크롬에서 설정에서 같은 창 이름이면 새창이 더 안열리게 하는 방법 아시는 분

답변 좀 주세요.

window.open('주소','창이름','옵션') 해서 창이름이 같은데 새창이 자꾸 열리네요.

갑자기 모든 브라우저에서 그러네요.

 

질문에도 답이 없어서 창을 닫는 방법으로 코딩해도 창을 자바스크립트로 못 닫는중입니다.

 

 

<script>
// 웹페이지 로드 시 새창 열기
window.onload = function() {
  var newWindow = window.open("https://www.naver.com", "naver", "width=500, height=400");
};

// 버튼 클릭 시 새창 닫기
var closeButton = document.querySelector("#closeButton");
closeButton.addEventListener("click", function() {
  newWindow.close();
});
</script>

<button id="closeButton">닫기</button>

이 질문에 댓글 쓰기 :

답변 1

다음과 같은방법으로 해 볼 수 있을것 같습니다.

 

새 창이 이미 열려 있는 경우에는 새로 열지 않고, 이미 열린 창을 닫을 수 있도록 합니다.


<script>
var newWindow = null;
// 웹페이지 로드 시 새창 열기
window.onload = function() {
  if (newWindow === null || newWindow.closed) {
    newWindow = window.open("https://www.naver.com", "naver", "width=500, height=400");
  }
};
// 버튼 클릭 시 새창 닫기
var closeButton = document.querySelector("#closeButton");
closeButton.addEventListener("click", function() {
  if (newWindow !== null && !newWindow.closed) {
    newWindow.close();
  }
});
</script>

 

동적 창 이름 생성 방법


<script>
// 웹페이지 로드 시 새창 열기
window.onload = function() {
  var uniqueWindowName = "naver_" + Date.now(); // 고유한 창 이름 생성
  var newWindow = window.open("https://www.naver.com", uniqueWindowName, "width=500, height=400");
};
// 버튼 클릭 시 새창 닫기
var closeButton = document.querySelector("#closeButton");
closeButton.addEventListener("click", function() {
  window.close();
});
</script>

각각의 창에 고유한 이름을 부여하여 중복으로 창이 열리는 것을 방지하게 할 수 있습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 131
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT