브라우저 창에서 현재 탭을 닫으려면 어떻게 해야 합니까?
브라우저에서 다른 탭을 닫지 않고 현재 활성 탭을 닫는 링크를 웹 페이지에 만들고 싶습니다.
사용자가 닫기 링크를 클릭하면 "YES(예)"와 "NO(아니오)"라는 두 개의 버튼으로 확인하라는 경보 메시지가 나타납니다.사용자가 "YES"를 클릭하면 해당 페이지를 닫고 "NO"인 경우 아무 작업도 수행하지 않습니다.
어떻게 할 수 있을까요?좋은 의견이라도 있나?
그러기 위해서는 Javascript가 필요합니다.사용방법:
close();
참고: 현재 탭은 암시되어 있습니다.이것은 동등합니다.
window.close();
또는 다른 창을 지정할 수 있습니다.
그래서:
function close_window() {
if (confirm("Close Window?")) {
close();
}
}
HTML을 사용한 경우:
<a href="javascript:close_window();">close</a>
또는 다음과 같이 입력합니다.
<a href="#" onclick="close_window();return false;">close</a>
»return false이벤트 기본 동작을 방지합니다.그렇지 않으면 브라우저는 해당 URL로 이동하려고 시도합니다(분명히 그렇지 않습니다).
대화상자의 옵션은 [OK]와 [Cancel]([Yes]와 [No]가 아닌 [Cancel])가 됩니다.Yes와 No를 원하는 경우 모달 Javascript 대화 상자를 생성해야 합니다.
주의: 위와 같은 브라우저 고유의 차이가 있습니다.Javascript를 사용하여 창을 연 경우(via)window.open()자바스크립트파이어폭스IE가 사용자에게 확인을 요청할 것이라고 생각합니다.을 하다
이거 드셔보세요
<a href="javascript:window.open('','_self').close();">close</a>
이 방법은 Chrome 및 IE에서 사용할 수 있습니다.
<a href="blablabla" onclick="setTimeout(function(){var ww = window.open(window.location, '_self'); ww.close(); }, 1000);">
If you click on this the window will be closed after 1000ms
</a>
현재 Chrome이나 Fire Fox에서는 사용할 수 없습니다.IE(최소한 엣지 이전)에서도 가능한 경우가 있습니다.
죄송합니다.최근에 로컬 호스팅 사이트를 실장했는데, 현재 브라우저 탭을 닫을 수 있는 기능이 필요했기 때문에 문서화되어 있지 않은 흥미로운 회피책을 발견했기 때문에 스스로 이 작업을 수행했습니다.
주의: 이러한 회피책은 로컬 호스트 사이트를 염두에 두고 수행되었으며, (Edge를 제외하고) 브라우저를 특별히 구성해야 하므로 공개 호스트 사이트에는 적합하지 않습니다.
콘텍스트:
스크립트 jQuery는window.close()는 대부분의 브라우저에서 문제없이 현재 탭을 닫을 수 있었습니다.그러나 대부분의 최신 브라우저는 보안상의 이유로 이 스크립트를 더 이상 지원하지 않습니다.
현재 기능:
window.close()스크립트 또는 앵커에 의해 열려 있는 탭으로 동작합니다.target="_blank" 탭에서) (새 탭으로 열림)
@calios의 답변에 대한 @killstreet의 코멘트를 참조하십시오.
브라우저 고유의 회피책:
Google Chrome:
Chrome에서는 window.close() 스크립트를 실행할 수 없으며 사용하려고 해도 아무 일도 일어나지 않습니다.Chrome 플러그인 TamperMonkey를 사용하면 window.close() 메서드를 사용할 수 있습니다.// @grant window.closeTamperMonkey UserScript 。
예를 들어, my script(ID = 'close_page' 버튼을 클릭하고 브라우저 팝업에서 'yes'를 누르면 트리거되는 스크립트)는 다음과 같습니다.
// ==UserScript==
// @name Close Tab Script
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Closes current tab when triggered
// @author Mackey Johnstone
// @match http://localhost/index.php
// @grant window.close
// @require http://code.jquery.com/jquery-3.4.1.min.js
// ==/UserScript==
(function() {
'use strict';
$("#close_page").click(function() {
var confirm_result = confirm("Are you sure you want to quit?");
if (confirm_result == true) {
window.close();
}
});
})();
메모: 그러나 이 솔루션은 탭이 마지막으로 열리지 않은 경우에만 탭을 닫을 수 있습니다.따라서 실제로 탭을 마지막으로 열어서 창이 닫힐 경우 탭을 닫을 수 없습니다.
파이어폭스:
창을 수할 수 Firefox를 효과적으로 할 수 .window.close()방법.이 설정을 활성화하려면 about:config로 이동한 다음 dom을 검색하여 찾습니다.allow_syslog_to_close_windows 프리퍼런스를 false에서 true로 바꿉니다.
" " 를 할 수 .window.close()다른 스크립트와 마찬가지로 jQuery 파일에 직접 메서드를 입력합니다.
예를 들어 이 스크립트는 프리퍼런스가 true로 설정되어 있을 때 완벽하게 동작합니다.
<script>
$("#close_page").click(function() {
var confirm_result = confirm("Are you sure you want to quit?");
if (confirm_result == true) {
window.close();
}
});
</script>
이 방법은 Chrome의 회피책보다 훨씬 효과적입니다.사용자가 현재 탭을 열어도 탭을 닫을 수 있고 서드파티 플러그인이 필요하지 않기 때문입니다.단, 이 스크립트를 다른 웹 사이트(사용하려는 웹 사이트뿐 아니라)에서 실행할 수 있다는 단점이 있습니다.따라서 현재 탭을 닫는 것이 특히 위험하다고는 생각할 수 없지만 보안상의 위험이 될 수 있습니다.
가장자리:
는 실제로 중 하여 3개의 브라우저로 했습니다.window.close()설정을 필요로 하지 않습니다.?window.close()스크립트가 실행되면 페이지가 현재 탭을 닫으려고 함을 경고하고 계속할지 여부를 묻는 추가 팝업이 나타납니다.
편집: 이것은 크롬을 기반으로 한 것이 아니라 이전 버전의 Edge를 기반으로 한 것입니다.테스트해 본 적은 없지만, 크롬 기반 버전에서는 크롬과 같은 동작을 할 것이라고 생각합니다.
최종 주의:Chrome과 Firefox의 솔루션은 보안상의 이유로 브라우저가 의도적으로 비활성화한 것에 대한 회피책입니다.또, 양쪽 모두, 유저가 사전에 호환성을 갖추도록 브라우저를 설정할 필요가 있기 때문에, 퍼블릭 유저 전용의 사이트에서는 실행할 수 없지만, 로컬로 호스트 되는 솔루션에는 최적입니다.
도움이 됐으면 좋겠네요! :)
가능하다.이것을 찾기 위해서 온 인터넷을 검색했습니다만, 마이크로소프트의 설문에 응했을 때, 드디어 답을 얻었습니다.
이것을 시험해 보세요.
window.top.close();
현재 탭이 닫힙니다.
이것도 먹어보세요.세 가지 주요 브라우저에서 모두 작업하고 있습니다.
<!-- saved from url=(0014)about:internet -->
<a href="#" onclick="javascript:window.close();opener.window.focus();" >Close Window</a>
Chrome 41에서는 다음과 같이 동작합니다.
function leave() {
var myWindow = window.open("", "_self");
myWindow.document.write("");
setTimeout (function() {myWindow.close();},1000);
}
실제 웹페이지를 여는 등 FF를 위해 몇 가지 아이디어를 시도했지만 효과가 없는 것 같습니다.JS에 의해 실제로 열려 있는 경우 브라우저는 xxx.close()가 있는 탭이나 창을 닫지만 적어도 FF는 그 탭 내에서 새로운 콘텐츠를 열어서 탭을 닫도록 속일 수 없습니다.
JS가 유용한 이력을 가진 탭이나 창을 닫는 것을 원하지 않을 수도 있습니다.
FF 18 및 Chrome 24에서 테스트 성공:
머리 부분에 삽입:
<script>
function closeWindow() {
window.open('','_parent','');
window.close();
}
</script>
HTML:
<a href="javascript:closeWindow();">Close Window</a>
아직 이 페이지를 방문 중인 사용자는 target_blank가 있는 HTML의 앵커 태그를 사용하여 스크립트 또는 OR에 의해 열려 있는 탭만 닫을 수 있습니다.둘 다 를 사용하여 닫을 수 있습니다.
<script>
window.close();
</script>
<button class="closeButton" style="cursor: pointer" onclick="window.close();">Close Window</button>
이것은 나에게 효과가 있었다
window.close()은 2k21이 아니기 때문에 수 .Scripts may close only the windows that were opened by them.
이 으로 열리는 것이 - 는 " " " " 입니다.window.close()
「」( 「」)인 경우)close()★★★★
<a href="/close" target="_blank">는 새 이 "이 탭은 "이러한 주소"로 닫을 수 .close()- Telegram의 링크를 .
close() - windowru.
close()
수동(동작하지 않는 경우):
- 새 브라우저를 열고 주소를 입력할 때 사용합니다.
- (+)를 클릭하여 새 탭을 열고 주소를 입력할 때
향후 브라우저에서는 탭 닫기가 허용되지 않음을 보증합니다.위와 같은 스크립트를 사용하면 동작하지 않습니다.
저의 해결책은 Chrome Extension을 사용하는 것이었습니다.Chrome Extension에는 탭 조작 권한이 필요할 수 있으므로 확장의 컨텐츠 스크립트가 활성 상태인 도메인의 탭 닫기를 쉽게 처리할 수 있습니다.
백그라운드 스크립트는 다음과 같습니다.
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
console.log(sender)
console.log(message)
if(message.closeThis) {
closeTab(sender.tab.id)
}
});
const closeTab = id => {
console.log("Closing tab");
chrome.tabs.remove(id);
}
콘텐츠 스크립트는 다음과 같습니다.
window.addEventListener("message", (event) => {
// Only accept messages from ourselves
if (event.source !== window)
return;
if (event.data.type && (event.data.type === "APPLICATION/CLOSE")) {
console.log("Content script received APPLICATION/CLOSE event");
chrome.runtime.sendMessage({closeThis: true});
}
}, false);
응용 프로그램에서 이 명령을 호출하여 탭을 닫습니다(매니페스트에서 명령어를 지정하여 도메인에서 콘텐츠스크립트가 활성화 되어 있는지 확인합니다).
window.postMessage({ type: "APPLICATION/CLOSE" }, "*");
Chrome Extensions의 배포는 번거로울 수 있으므로 사용할 때 주의하십시오.
조금 늦었지만 이게 내가 알게 된...
window.close() 、 [ ] 、 [ IE ] 、 [ IE ] 、 [ ]) [ 으로 동작합니다.close()window.open()에 대해 설명합니다.
!(아래의 @killstreet의 코멘트를 참조해 주세요.
TLDR: Chrome & Firefox를 사용하여 닫을 수 있습니다.
콘솔 오류: 스크립트에 의해 열리지 않은 창이 닫히지 않을 수 있습니다.오류로서만 표시됩니다.
페이지가 스크립트에서 열렸는지 여부를 알기 위해 URL에 고유한 파라미터를 추가할 수 있습니다(예: 시간). 그러나 이것은 해킹일 뿐 네이티브 기능이 아니며 경우에 따라서는 실패합니다.
페이지가 open()에서 열렸는지 여부를 알 수 있는 방법을 찾을 수 없었습니다.close는 슬로우나 에러는 발생하지 않습니다.「테스트」는 인쇄되지 않습니다.
try{
window.close();
}
catch (e){
console.log("text");
}
close() 함수에 대한 자세한 내용은 MDN에서 확인할 수 있습니다.
그 싶었다.window.close() 2021년에는 크롬 91이 작동하지만 항상 작동하지는 않습니다.탭에 기록이 없는 경우(돌아갈 수 없음)가 작동하는 경우 중 하나입니다.
몇, 탭Iabout: with 제우 with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with with 이치노새 탭도 탭이 아닌 것 같습니다.정보: 공백 탭: 공백 탭.target=_blank이치노window.close() 메!!!!!!!!!!!
이것은 동일한 문제를 해결하는 한 가지 방법입니다. 이렇게 JavaScript 함수를 선언합니다.
<script>
function Exit() {
var x=confirm('Are You sure want to exit:');
if(x) window.close();
}
</script>
하여 HTML을 합니다.<button>
<button name='closeIt' onClick="Exit()" >Click to exit </Button>
JavaScript + HTML을 사용하여 브라우저가 현재 창을 닫도록 속일 수 있습니다.
JS:
function closeWindow() {
if(window.confirm('Are you sure?')) {
window.alert('Closing window')
window.open('', '_self')
window.close()
}
else {
alert('Cancelled!')
}
}
HTML:
Some content
<button onclick='closeWindow()'>Close Current Window!</button>
More content
이러한 링크를 작성하는 방법은 다음과 같습니다.
<a href="javascript:if(confirm('Close window?'))window.close()">close</a>
언급URL : https://stackoverflow.com/questions/2076299/how-to-close-current-tab-in-a-browser-window
'source' 카테고리의 다른 글
| HTML5 로컬 스토리지와세션 스토리지 (0) | 2022.12.24 |
|---|---|
| 이 Unbound Local Error가 발생하는(닫힘) 이유는 무엇입니까? (0) | 2022.12.24 |
| 디버깅 정보를 사용하여 Python 오류를 기록하려면 어떻게 해야 합니까? (0) | 2022.12.24 |
| PHP foreach 루프 키 값 (0) | 2022.12.24 |
| 행을 복사하고 MySQL에서 자동 증분 필드와 동일한 테이블에 삽입하려면 어떻게 해야 합니까? (0) | 2022.12.24 |
