Как закрыть текущую вкладку в окне браузера?
Я хочу создать ссылку на веб-странице, которая закрывает текущую активную вкладку в браузере, не закрывая другие вкладки. При нажатии на ссылку "Закрыть" должно появляться сообщение с предупреждением, спрашивающее пользователя о подтверждении действия, с двумя кнопками: "ДА" и "НЕТ". Если пользователь нажимает "ДА", вкладка должна закрываться, если "НЕТ" — ничего не должно происходить.
Как это можно реализовать? Есть ли какие-нибудь предложения?
5 ответ(ов)
Судя по всему, это больше не возможно в Chrome или Firefox. В Internet Explorer (по крайней мере, до Edge) это может еще быть возможно.
Да, это возможно. Я искал информацию по этому поводу по всему интернету, но только один раз, когда я заполнил анкету от Microsoft, я наконец нашел ответ.
Попробуйте следующее:
window.top.close();
Этот код закроет текущую вкладку для вас.
Вам может помочь следующий код, который работает в Chrome 41:
function leave() {
var myWindow = window.open("", "_self");
myWindow.document.write("");
setTimeout(function() { myWindow.close(); }, 1000);
}
Однако я попробовал несколько решений для Firefox, включая открытие реальной веб-страницы, но ничего не сработало. Насколько я понимаю, любой браузер закроет вкладку или окно с помощью xxx.close()
, если они были действительно открыты с помощью JavaScript. Однако Firefox, по крайней мере, не позволяет закрыть вкладку, просто открыв новое содержимое внутри нее.
Это имеет смысл, если подумать об этом - пользователь может не хотеть, чтобы JavaScript закрывал вкладку или окно, в котором есть ценная история.
Что касается людей, которые все еще посещают эту страницу, вы можете закрыть вкладку, которая была открыта либо скриптом, либо с использованием тега в HTML с атрибутом target="_blank". Обе эти вкладки можно закрыть с помощью следующего кода:
<script>
window.close();
</script>
Обратите внимание, что код с window.close()
сработает только в случаях, когда вкладка была открыта именно с помощью скрипта или соответствующего тега. Если вкладка была открыта пользователем (например, вручную), то закрыть ее таким образом не получится.
Вы можете использовать следующий код для кнопки, которая закрывает текущее окно браузера:
<button class="closeButton" style="cursor: pointer" onclick="window.close();">Закрыть окно</button>
Этот код работает, так как при нажатии на кнопку выполняется функция window.close()
, которая закрывает текущее окно. Учтите, что эта функция может не сработать, если окно не было открыто с помощью JavaScript.
Открыть URL в том же окне и на той же вкладке
Потеряно HTML-кодирование при чтении атрибута из поля ввода
jQuery/JavaScript: Замена битых изображений
Как создать WYSIWYG-редактор на HTML/JS? [закрыто]
Как выполнить код после сброса HTML-формы с помощью jQuery?