| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Запрет закрытия окна |
| Автор: GoodBoy 20.2.2004, 12:02 |
| Братцы подскажите как на JS запретить закрытие окна при нажатии на крестик или Flt+F4. Ужо мочи нету... Босс требует... Заранее зело благодарен!!! |
| Автор: Alx 20.2.2004, 12:26 | ||||
врядли сработает! ед. вариант, как мне кажется:
|
| Автор: GoodBoy 20.2.2004, 12:53 |
| Такой вариант неприемлем по двум причинам: 1. Это сработает и при релоаде страницы, а мне надо отловить именно закрытие. 2. На странице вводится текст и при обычной перезагрузке он просто потеряется... |
| Автор: Sardar 20.2.2004, 16:11 | ||
Зачем это могло понадобится...? Однозначный ответ: этого сделать нельзя! Даже если ИЕ будет тупить и выполнять такой код, другие браузеры и оболочки по ИЕ пропускать такое не будут. |
| Автор: GoodBoy 20.2.2004, 16:17 |
| Сам знаю, что нельзя... Но надеялся, что может быть можно... :-( Правда мне только для ИЕ и нужно было... А требовалось это для того, что-бы нельзя было случайно закрыть окно и потерять введенный текст... |
| Автор: Sardar 20.2.2004, 16:56 |
| Тогда событие onbeforeunload должно помочь. Появится диалог "действительно закрыть эту страницу?". |
| Автор: GoodBoy 24.2.2004, 11:31 | ||||
НЕТ!!!!!!! я об этом уже писал!!!
|
| Автор: Sardar 24.2.2004, 19:39 |
| Событие будет вызыватся при закрытии окна, но остановить этот процесс ничем нельзя. Можно при закрытии скопировать все важнное в буффер обмена и сообщить, что возможно не все еще погибло... |
| Автор: GoodBoy 25.2.2004, 11:15 |
| Sardar: Событие будет вызываться при закрытии окна, перезагрузке страницы и переходе на новую страницу!!! А мне нужно было ТОЛЬКО при закрытии!!!! Тему можно считать закрытой... |
| Автор: Royan 1.3.2004, 21:54 |
| Объясни босу - это нарушает политику безопасности Microsoft Internet Explorer, поэтому такая возможность не предусмотрена разработчиками IE. На том точка. |
| Автор: GoodBoy 2.3.2004, 12:08 |
| Royan Босс уже проникся!!! :-))) Но с другой стороны - не удобно... В винде для своего приложения так сделать можно, а внутри ИЕ - низя... |
| Автор: Alx 2.3.2004, 14:38 |
| ты понимаешь, сколько вирусов и спама бы за это цеплялось! |
| Автор: GoodBoy 3.3.2004, 11:23 |
| ALEXANDRO Я то |
| Автор: Alx 3.3.2004, 20:17 |
| GoodBoy |
| Автор: GoodBoy 15.3.2004, 13:54 | ||
И все-таки я это сделал!!! :-)))))))
В таком варианте нажатие на крестик закрытия окна приводит к запросу на закрытие, а при нажатии Ctrl+R - запрос подавляется. |
| Автор: Гость_Sardar 15.3.2004, 14:06 |
| Я об этом говорил постами выше. Событие onbeforeunload специально созданно для "предотвращения" потери данных. По моему у меня не получилось остановить закрытие, лень было в MSDN'e посмотреть. Кстати теперь по моему и Gecko(Mozilla, Netscape...) поддерживает это событие. |
| Автор: GoodBoy 15.3.2004, 14:13 |
| 2 Гость?? Sardar Эт понятно!!! Я и сам про onbeforeunload знал, но нужно было его заставить работать ТОЛЬКО при крестике!! :-)))))))) ЗЫ. А почему ты - гость?? :-))))))) |
| Автор: Alx 15.3.2004, 14:47 |
| GoodBoy ну ты крут! |
| Автор: Sardar 15.3.2004, 19:19 | ||||||
GoodBoy
Ctrl+R это не выход...
Жизнь такая ALEXANDRO
Ну нравится же тебе флеймить!!! |
| Автор: Alx 15.3.2004, 22:41 |
| Sardar я сам не люблю флейм, но я ж почучуть, никому не мешая! к тому же это не очень далеко от темы! |
| Автор: GoodBoy 17.3.2004, 11:17 | ||
2 Sardar
Понятно, что не выход!! :-)))))))) Я решил подавить запрос при перезагрузке страницы. |
| Автор: Иль 12.10.2005, 10:41 |
| Елки, теперь понятно! Это сделано как встроенный стандартный компонент браузера типа confirm. Ну чтож, довольно деликатно и права пользователя не ущемлены и свой текст добавлять можно. Тем более приятно, что в Gecko это работает также. |
| Автор: Fal'K° 1.11.2005, 15:18 |
| У меня не работает хоть крестиком, хоть ноликом, хоть ALT+F4 закрывается без возмущений |
| Автор: Sardar 2.11.2005, 00:40 |
| Fal'K° однозначно либо JS отключен, либо руки не из того места. Код приведённый GoodBoy на предидущей странице должен работать. |
| Автор: Гость_12345 3.11.2005, 02:32 |
| Sardar: из-под GreenBrowser событие onBeforeUnload игнорируется |
| Автор: Aliance 3.11.2005, 02:56 |
| Естественно, оно поддерживается только в ИЕ. |
| Автор: Sardar 3.11.2005, 02:56 |
| Он на своём особом движке? Точно не знаю, но ИЕ, Геко и Опера должны иметь onbeforeunload, KHTML и производные(Safari) не знаю... Скорее всего под таким браузером просто нельзя отследить закрытие окна, либо какой свой, редкий не стандартный API. Вывод: забей. Вывод получше: пересмотри задачу, не могу представить себе ситуацию где бы это понадобилось. Фичи гугла, мол перед закрытием окна предупредить юзера, меня это больше раздражает, тем более что SessionSaver плагин для мозиллы оставляет формы заполненными при востановлении окна/сессии и никаких окон) |
| Автор: Aliance 3.11.2005, 02:59 |
| Разве Gecko тоже? |
| Автор: Sardar 3.11.2005, 20:54 |
| Проверил, onbeforeunload существует и работает как нужно, FireFox 1.0.7 |