JavaScript

Предупреждение о закрытии страницы

В CMS нередко при закрытии страницы редактирования чего-либо появляется такое сообщение с выделенной кнопкой и своим заголовком (скин 1 или 2). Вряд ли оно кастомное, скорее всего стандартный компонент браузера.
Но когда я пытаюсь сделать то же самое на JavaScript функцией conform() у меня появляется такое окно (скрин 3) со стандартным заголовком и кнопками.
Как мне вызвать такое же окно как в CMS с выделенными кнопками и своим заголовком?
это как правило если вы пользовались формой поиска или что то вводили в какие то поля типа input то это стандартная процедура браузера

на js мы можем отследить положение мышки и если она выходит за пределы экрана то уже выдать сообщение

примерно вот так : _https://ruseller.com/lessons/les195/example/index.html
ВВ
Владимир Вохмянин
66 671
Лучший ответ
Дмитрий Сайгушев Сам браузер никогда не выдаст никаких предупреждений при закрытии страницы, если его об этом не попросить например при срабатывании события onunload.
Я всегда это делал стандартным методом confirm(). Вопрос собсно выше...
Это стандартный диалог. Смотри справку по событию beforeunload (например, на MDN), чтобы понять как все это использовать.

В современных браузерах, возможность установки кастомного текста в стандартный диалог при выгрузке дока - изначально была, но впоследствии ее поспешно выпилили из-за злоупотреблений этой фичей. Теперь текст задается юзерагентом, и через апи изменять его НЕЛЬЗЯ. Такое ограничение закреплено в стандарте: _https://html.spec.whatwg.org/#prompt-to-unload-a-document
Другими словами, ты можешь задать свой текст, но он будет показан только браузерами с нестандартным поведением, а остальные покажут свой типовой текст.

Вызывать в обработчике beforeunload свои диалоги через confirm() - можно, но не гарантируется что они будут показаны... то есть, лучше так не извращаться.
Абай Кеулимжайев Стандарт также рекомендует юзерагентам вообще не показывать стандартный диалог при закрытии, если пользователь еще не взаимодействовал с документом (это выполняется хромом, как минимум... хз как в остальных браузерах).
Во-первых, не "conform()", а confirm(). Функция вызывается для подтверждения действия именно для чего-то, чтобы вызвать true или false. А есть функция, которая выполняется перед выходом со страницы и выглядит так:

window.onbeforeunload = evt => {
let message = "Введите сообщение, чтоб вывелось";
if (evt) {
evt.returnValue = message;
evt = window.event;
}
return alert(message);
}
Дмитрий Сайгушев ну да, confirm() конечно, просто опечатался....
А для чего вы привели весь этот код? Вопрос-то совсем в другом заключался....
Жан Косдаулетов "Как мне вызвать такое же окно как в CMS с выделенными кнопками и своим заголовком?" - Ваш вопрос. Я ответил, показав скрипт, как оно вызывается. А кнопки и текст, мне кажется, никак не переделать, это уже встроенная в браузер, так сказать "константная функция"