Попередження при закритті вікна - стаття на

Інтернет набуває високу популярність, як засіб обміну інформацією. Часто інформація представляє велику цінність і вірогідність її втрати потрібно звести до мінімуму. Простий приклад. Ви півгодини набивали важливий лист, а потім випадково натиснули посилання або закрили вкладку та інформація виявилася втрачена.

Навчимося викликати цей діалог. У реалізації деяких браузерів у об'єкта window є подія beforeunload. Воно генерується при спробі вивантаження поточного вікна. Його стандартний обробник і показує цей діалог. На жаль, не вийде замінити це діалогове вікно власним, однак, за допомогою властивості returnValue можна змінити текст у другому рядку попередження. Робиться це так:

window. onbeforeunload = function # 40; evt # 41; # 123;
evt = evt || window. event;
evt. returnValue = "Ви ж нічого не зберегли!" ;
# 125;

В результаті, при спробі покинути сторінку побачимо:

зауваження:

  • Краще скористатися функцією для додавання обробників подій.
  • Подія beforeunload генерується в Gecko і IE. В Опері і Сафарі описана фіча не працює.
  • При деяких варіантах закриття вікна браузер може опустити діалог. Наприклад, при натисканні Ctrl + W в IE7.
  • Доповнення від veb і pepelsbey. У Safari це вже передбачено. Після набитий тексту в будь-яке поле, вікно браузера без цього попередження вже не закрити.

Інші статті схожої тематики:

Чи може обробник перешкоджати закриттю вікна, не видаючи запиту на підтвердження?

Ніби як немає. У мене не вийшло. Скасування дефолтного поведінки за допомогою такого коду не допомагає:

if # 40; evt. preventDefault # 41; evt. preventDefault # 40; # 41; ;
evt. returnValue = false;
return false;

Та й не пригадаю сторінки, де таке спостерігається. Спамери б з глузду з'їхали від такої можливості :-) Мало того, що можна купу попап відкрити, так ще і не давати можливості їх закрити без попередження.

які ще значення має сенс привласнювати об'єкту evt, щоб це мало якийсь видимий результат в даній ситуації

Здрастуйте, у мене питання такого характеру - як тут вже було відмічено, досвідчені спамери вже встигли оцінити "цінність" такий захисний захід і всіляко намагаються втиснути на свої сторінки діалогове вікно, яке б відкривалося мільйони разів, не дозволяючи закрити вкладку. чи можна якось налаштувати, щоб не було більше одного діалогового вікна на сторінку (зазвичай одного попередження досить)? Зокрема використовую Оперу, але подібних налаштувань не знайшов

Останнім часом браузери (по крайней мере, у Firefox) при виникненні таких вікон показують галочку типу "більше не показувати спливаючі вікна з цієї сторінки", вона в такому випадку допомагає.
Щодо Опери не знаю.

Те, що не вбиває нас, робить нас інвалідами.

Схожі статті