Запрет закрытия окна браузера

Обновлено: 02.07.2024

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

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

Примечание. подразумевается текущая вкладка. Это эквивалентно:

Или вы можете указать другое окно.

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

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

Примечание: есть различия, специфичные для браузера. Если вы открыли окно с помощью Javascript (через window.open() ), то вы можете закрыть окно с помощью Javascript. Firefox запрещает вам закрывать другие окна. Я полагаю, что IE попросит пользователя подтвердить. Другие браузеры могут отличаться.

В Chrome 41 у меня работает следующее:

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

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

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

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

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

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

Этот метод работает в Chrome и IE:

Это один из способов решения этой проблемы, объявить функцию JavaScript, как это

Добавьте следующую строку в HTML для вызова функции с помощью <button>

Насколько я могу сказать, это больше невозможно в Chrome или FireFox. Это все еще возможно в IE (по крайней мере, до Edge).

Что касается людей, которые все еще посещают эту страницу, вам разрешено только закрывать вкладку, которая открывается скриптом ИЛИ, используя тег привязки HTML с target _blank. Оба они могут быть закрыты с помощью

Немного поздно, но это то, что я узнал .

window.close() будет работать только (IE является исключением), если окно, которое вы пытаетесь close() , было открыто скриптом с использованием метода window.open ().

! (см. комментарий @killstreet ниже о теге привязки с целью _blank)

TL; DR : Chrome и Firefox позволяют закрыть их.

Вы получите ошибку консоли: Скрипты могут не закрывать окна, которые не были открыты скриптом. как ошибка и больше ничего.

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

Я не мог найти способ узнать, была ли страница открыта из open () или нет, и близко не кинет и ошибки. это НЕ напечатает "тест":

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

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

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

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

Примечание. Эти обходные пути были сделаны с учетом локально размещенного сайта, и (за исключением Edge) требуют, чтобы браузер был специально настроен, поэтому он не будет идеальным для общедоступных сайтов.

Контекст . Раньше скрипт jQuery window.close() мог без проблем закрыть текущую вкладку в большинстве браузеров. Однако современные браузеры больше не поддерживают этот сценарий, возможно, по соображениям безопасности.

Chrome не позволяет запускать скрипт window.close (), и ничего не происходит, если вы попытаетесь его использовать. Однако, используя плагин Chrome TamperMonkey, мы можем использовать метод window.close () if , включив // @grant window.close в заголовок UserScript TamperMonkey.

Например, мой скрипт (который запускается при нажатии кнопки с и нажатии 'yes' во всплывающем окне браузера) выглядит следующим образом:

Примечание. Это решение может закрыть вкладку, только если она НЕ является последней открытой вкладкой. Так эффективно, он не может закрыть вкладку, если это приведет к закрытию окна, будучи последней открытой вкладкой.

Firefox имеет расширенные настройки, которые вы можете разрешить сценариям закрывать окна, эффективно включив метод window.close() . Чтобы включить этот параметр, перейдите в about: config , затем найдите и найдите параметр dom.allow_scripts_to_close_windows и переключите его с false на true.

Это позволяет вам использовать метод window.close() непосредственно в вашем файле jQuery, как и любой другой скрипт.

Например, этот скрипт отлично работает с настройкой true:

Это работает намного лучше, чем обходной путь Chrome, так как позволяет пользователю закрывать текущую вкладку, даже если она открыта единственной вкладкой, и не требует стороннего плагина. Один недостаток, однако, заключается в том, что он также позволяет запускать этот сценарий на разных веб-сайтах (не только на том, на котором вы собираетесь его использовать), что потенциально может представлять угрозу безопасности, хотя я не могу представить, что закрытие текущей вкладки является особенно опасным.

К сожалению, Edge показал лучший результат из всех трех браузеров, которые я пробовал, и работал с методом window.close() , не требуя никакой настройки. Когда скрипт window.close() запущен, дополнительное всплывающее окно предупреждает вас о том, что страница пытается закрыть текущую вкладку, и спрашивает, хотите ли вы продолжить.

enter image description here

Заключительное примечание . Решения для Chrome и Firefox - это обходные пути, которые браузеры намеренно отключили, возможно, из соображений безопасности. Они также требуют, чтобы пользователь настраивал свои браузеры так, чтобы они были совместимы заранее, поэтому, скорее всего, они не будут жизнеспособными для сайтов, предназначенных для общего пользования, но идеально подходят для локально размещенных решений, таких как мой.

Существует несколько различных способов закрыть или выйти из брайзера. Вы можете попросить Firefox уведомлять вас, когда вы близки к закрытию нескольких вкладок.

Единственный случай, в котором диалоговое окно при закрытии включено по умолчанию — это сочетание лдя выхода из двух клавиш на macOS и Linux. Риск случайного закрытие в этом контексте выше, так как сочетание для выхода (⌘+Q) находится рядом с сочетанием для переключения приложения (⌘+Tab).

Несмотря на то, что эти изменения — поведение по умолчанию, у вас всё ещё будет полный контроль над поведением диалогового окна при выходе/закрытии. Всеми предупреждениями можно управлять через Настройки Настройки Firefox.

На Панели меню в верхней части экрана щёлкните Firefox и выберите Настройки . Нажмите на кнопку меню и выберите Настройки Настройки . Нажмите на кнопку меню и выберите Настройки .

Confirm_WintabModal

На Панели меню в верхней части экрана щёлкните Firefox и выберите Настройки . Нажмите на кнопку меню и выберите Настройки Настройки . Нажмите на кнопку меню и выберите Настройки .

Confirm_MactabModal

Пользователи Mac могут также выйти из браузера с помощью сочетания клавиш command ⌘ + Q . Если вы хотите отключить предупреждения о закритии нескольких владок при использовании этого сочетания, снимите значок рядом с Подтвердить перед выходом с помощью ⌘+Q.

На Панели меню в верхней части экрана щёлкните Firefox и выберите Настройки . Нажмите на кнопку меню и выберите Настройки Настройки . Нажмите на кнопку меню и выберите Настройки .

Confirm_LinuxtabModal

Пользователи Linux могут также выйти из браузера с помощью сочетания клавиш Ctrl + Q . Если вы хотите отключить предупреждения о закритии нескольких владок при использовании этого сочетания, снимите значок рядом с Подтвердить перед выходом с помощью Ctrl+Q.

Эти прекрасные люди помогли написать эту статью:

Illustration of hands

Станьте волонтёром

Растите и делитесь опытом с другими. Отвечайте на вопросы и улучшайте нашу базу знаний.

Могу ли я, используя javascript, определить, нажал ли пользователь значок «X» в диалоговом окне браузера или кнопки «ОК» / «Отмена»? У меня есть код, который нужно запустить при закрытии окна, но он будет работать только при нажатии OK или Отмена.

В настоящее время я фиксирую событие onunload окна. Как я могу сделать это?

Почему ты хочешь сделать это? Возможно, мы поможем вам придумать другой дизайн, который не требует этого, если вы расскажете нам, что вы пытаетесь сделать.

Тем не менее, чтобы ответить на ваш вопрос: не возможно поймать это событие во всех случаях. Вы не можете запретить пользователю закрывать браузер или гарантировать, что ваш код будет выполняться, когда он это сделает. Вы можете сделать это немного раздражающим для них, но они могут отключить JavaScript, или убить процесс, или перезагрузить компьютер. Использование функции unload наиболее близко к тому, что вы можете получить некоторый код, который запускается при закрытии окна (он будет работать в случае нормального выключения или когда пользователь уходит).

А что если он делает ALT + F4?

Невозможно отследить закрытие браузера и обработать любое другое событие, которое также вызывает обратную запись. Вы можете попробовать и многие люди до вас и не смогли.

Лучше всего использовать onbeforeunload и научиться обращаться с тайм-аутами сеансов на вашей стороне сервера для очистки данных.

Насколько мне известно, вы не можете определить, закрыл ли пользователь диалоговое окно, нажав кнопку «Отмена» или кнопку [x], так как ни один из них не был вам доступен, кроме как возвращать результат действия (например, подтвердить () как истина / ложь ) .

Если я правильно понял, ваш вопрос касается диалога браузера , а не главного окна браузера .

Чтобы ответить на ваш вопрос, вы, вероятно, не можете различить кнопку «Отмена» и кнопку «X» диалогового окна браузера . Они оба в итоге просто вернут false . Если вам нужен этот уровень контроля, вы должны написать собственный смоделированный диалог (лайтбокс) вместо реального диалога JavaScript. Или, возможно, посмотрите на существующие фреймворки / плагины с модальными диалоговыми окнами, которые дают вам необходимый уровень контроля.

Запрет на закрытие окна при нажатии на крестик
Можно как то запретить закрытие окна путем нажатия на крестик? Вообще в идеале мне нужно по.


Скрипт модального окна! Как сделать закрытие окна через крестик?
var modal = document.getElementById('myModal'); var btn =.


как сделать так чтобы при нажатии на крестик или на кнопку Завершить выбивало подтверждающих закрытия
как сделать так чтобы при нажатии на крестик или на кнопку Завершить выбивало подтверждающих.


Как сделать чтобы при нажатии на красный крестик программа не закрывалась а открывала нужную мне форму?
Как сделать чтобы при нажатии на красный крестик программа не закрывалась а открывала нужную мне.

Возможно, для поддержки старых браузеров потребуется полифилл, найти его можно тут. что то не работает этот скрипт, подключаю вроде бы все верно Какие ошибки в консоли браузера (F12 или Ctrl+Shift+C, чтобы открыть)?

Написано, что файла script1.js не существует. Вы в нём данный мной код разместили?
Проверьте правильность пути к этому файлу.

Добавлено через 8 минут
И вот так скрипт переделайте, чтобы поиск кнопок закрытия начинался только после построения DOM:

Да разместил js скрипт находится в папке js проекта вот путь для подключения
<script src="js/script1.js"></script> И что, не работает? Выложите не JSFiddle ваш код, посмотрим.

Решение

Работает же всё.

работает, огромная безмерная благодарность вам!

Добавлено через 1 час 46 минут
не подскажете как курсор поинтер реализовать?

Решение

Решение

Отловить закрытие окна на крестик
Добрый день. Есть диалоговое окно (должно быть модальным, поэтому открываю DialogShow()) Чтобы.

Как сделать автоматическое закрытие окна при потере фокуса?
Значит имеем галерею с превьюшками фотографий. Нажимая на фотографию открывается новое окно, без.

ModalPopupExrender закрытие всплывающего окна при нажатии на ссылку
Доброго времени, возникла следующая потребность при нажатии на ссылку закрывать всплывающее.

Закрытие модального окна при нажатии вне области
Как сделать, чтобы окно закрывалось при нажатии на крестик и при нажатии вне области. &lt;li.

Закрытие всплывающего окна, при нажатии в любой области экрана
Добрый день. У меня есть два блока, при нажатии на которые появляется скрытый текст, но нужно чтобы.

Закрытие окна при нажатии в любое место за его определами
Добрый день, помогите советом. Есть кнопка которая открывает окно, типа меню, но не меню, на то.

Читайте также: