Как закрыть текущую вкладку в окне браузера?

Я хочу создать ссылку на веб-странице, которая закроет текущую активную вкладку в браузере без закрытия других вкладок в браузере.
когда пользователь нажимает на ссылку закрыть, должно появиться предупреждающее сообщение с просьбой подтвердить двумя кнопками "да"и " нет". Если пользователь нажимает "да", закройте эту страницу, а если" нет", ничего не делайте.

Как это можно сделать? Есть предложения?

10 ответов


для этого вам понадобится Javascript. Использовать window.close():

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>

вы чтобы предотвратить поведение по умолчанию для события. В противном случае браузер попытается перейти на тот URL (который он очевидно, нет).

теперь параметры на window.confirm() диалоговое окно будет ОК и отмена (не да и нет). Если ты ... --30-->действительно хотите да и нет, вам нужно будет создать своего рода модальное диалоговое окно Javascript.

Примечание: есть браузер-особых различий с выше. Если вы открыли окно с помощью Javascript (via window.open()) тогда вам разрешено закрыть окно с помощью javascript. В Firefox блокирует вас от закрытия другие окна. Я считаю, что 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 или FireFox. Это все еще может быть возможно в IE (по крайней мере, pre-Edge).


это возможно. Я обыскал всю сеть для этого, но однажды, когда я взял один из опросов microsoft, я, наконец, получил ответ.

попробуйте это:

window.top.close();

это закроет текущую вкладку для вас.


успешно протестировано в FF 18 и Chrome 24:

вставить в голову:

<script>
    function closeWindow() {
        window.open('','_parent','');
        window.close();
    }
</script> 

HTML-код:

<a href="javascript:closeWindow();">Close Window</a>

кредиты идут в Маркос Дж. Дрейк.


попробуйте это. Работает на меня во всех трех основных браузерах.

<!-- 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);
}

Я пробовал несколько идей для ФФ, включая открытие веб-страницы, но ничего не работает. Насколько я понимаю, любой браузер закроет вкладку или окно с xxx.close () если это было действительно открыт JS, но FF, по крайней мере, нельзя обмануть, закрыв вкладку, открыв новое содержимое внутри этой вкладки.

это имеет смысл, когда вы думаете об этом-пользователь может не хотеть, чтобы JS закрывал вкладку или окно, которое имеет полезную историю.


Это один из способов решения того же, объявить функцию 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>

вот как вы создадите такую ссылку:

<a href="javascript:if(confirm('Close window?'))window.close()">close</a>