>웹 프론트엔드 >JS 튜토리얼 >window.open열린 창을 닫는 방법

window.open열린 창을 닫는 방법

DDD
DDD원래의
2023-12-06 14:15:301875검색

열린 창을 닫는 방법: 1. "window.close"를 사용하여 새 창을 닫습니다. 2. "window.location"을 사용하여 리디렉션합니다. 3. "window.blur" 및 "window.focus"를 사용합니다. . "window.history" 대체를 사용하십시오. 5. "window.opener"를 사용하십시오.

window.open은 새 창이나 탭을 여는 JavaScript 함수입니다. 단, 브라우저의 보안 제한으로 인해 새 창이나 탭에서 바로 원래 창이나 탭으로 돌아갈 수 없으며, 새 창이나 탭을 직접 닫을 수도 없습니다. 이는 악성 스크립트가 사용자 모르게 창이나 탭을 닫는 것을 방지하기 위한 것입니다.

그러나 새 창이나 탭을 간접적으로 닫을 수 있는 방법이 있습니다. 가능한 방법은 다음과 같습니다.

1. window.close를 사용하여 새 창을 닫습니다.

window.open으로 열린 새 창을 직접 닫을 수는 없지만 새 창에서 window.close 함수를 호출할 수 있습니다. 닫아. 예:

window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
window.close();

window.open으로 열린 창만 닫을 수 있다는 점에 유의하세요. 브라우저는 일반적으로 스크립트가 열지 않은 창을 닫는 것을 허용하지 않습니다. 또한 브라우저는 스크립트가 창의 샌드박스 환경 내에서 실행되거나 창이 window.open 을 통해 열리지 않는 한 스크립트가 window.close를 포함하는 창을 닫는 것을 방지할 수 있습니다.

2. window.location 리디렉션 사용

새 창의 주소 표시줄에 새 URL을 입력하여 새 창을 간접적으로 닫으면 새 페이지로 리디렉션할 수 있습니다. 예:

window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
window.location = 'https://www.example2.com';

이 예에서는 새 창이 새 URL로 리디렉션되어 원래 창이 간접적으로 닫힙니다. 이 접근 방식은 브라우저의 초점을 변경하므로 사용자에게 좋지 않은 경험을 제공할 수 있습니다.

3. window.blur 및 window.focus

사용하여 새 창의 초점을 잃다가 다시 닫을 수 있습니다. 예:

window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
window.blur();  // 失去焦点  
setTimeout(function() {  
    window.focus();  // 重新获得焦点  
}, 0);

브라우저 구현이 다를 수 있으므로 이 접근 방식이 항상 작동하지 않을 수도 있습니다. 또한 이 접근 방식은 브라우저의 초점을 변경하므로 사용자에게 좋지 않은 경험을 제공할 수 있습니다.

4. 되돌리려면 window.history를 사용하세요.

이전 기록 항목으로 돌아가려면 window.history 개체의 back() 메서드를 사용해 보세요. 새 창이나 탭이 닫힐 수 있습니다. 예:

window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
window.history.back();

이 방법은 브라우저 기록을 변경하므로 사용자에게 좋지 않은 경험을 선사할 수 있습니다. 또한 브라우저 구현이 다양할 수 있으므로 이 접근 방식이 항상 작동하지 않을 수도 있습니다.

5. window.opener 사용

새 창에서 열었다면 window.opener 속성을 사용하여 원래 창에 액세스할 수 있습니다. 그런 다음 원래 창에서 window.close()를 호출하여 새 창을 닫을 수 있습니다. 예:

원래 창에서:

var newWindow = window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
newWindow.close();  // 关闭新窗口

이 접근 방식은 사용자가 새 창을 수동으로 닫아야 하므로 사용자에게 좋지 않은 경험을 초래할 수 있습니다. 또한 이 방법은 브라우저 보안 제한으로 인해 항상 작동하지 않을 수도 있습니다.

위 내용은 window.open열린 창을 닫는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.