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


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

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

10 331

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() диалоговое окно будет ОК и отмена (не да и нет). Если вы действительно хотите да и нет вам нужно будет создать какое-то модальное диалоговое окно Javascript.

Примечание: есть специфические для браузера различия с вышеизложенным. Если вы открыли окно с Javascript (через 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 (по крайней мере, до края).

это возможно. Я обыскал всю сеть для этого, но однажды, когда я взял один из опросов 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>