Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сообщение с просьбой остаться на странице (https://javascript.ru/forum/misc/52837-soobshhenie-s-prosbojj-ostatsya-na-stranice.html)

ToshuK 09.01.2015 12:55

Сообщение с просьбой остаться на странице
 
Здравствуйте! Есть скрипт:
function closeOrNot(e) {
if(!e) e = window.event;
e.cancelBubble = true;
e.returnValue = '';
if (e.stopPropagation) {
e.stopPropagation();
e.preventDefault();
}
}
window.onbeforeunload=closeOrNot;

Он задает вопрос при закрытии вкладки, действительно ли покинуть страницу. Но так-же он задает этот же вопрос при обновлении страницы или при отправке формы.

Помогите пожалуйста, можно ли как-нибудь убрать запрос на уход со страницы когда посетитель именно отправляет форму?

ruslan_mart 09.01.2015 12:57

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

ToshuK 09.01.2015 17:21

Заказчик попросил поставить. Зачем ты меня грузишь полезно не полезно. Я попросил помощи, а не разъяснять для чего это и стоит ли его ставить:-E

ruslan_mart 09.01.2015 17:33

ToshuK, ну извини, что загрузил тебя.

Цитата:

Сообщение от ToshuK
Я попросил помощи, а не разъяснять для чего это и стоит ли его ставить

Так я помог тебе советом. :)

Подобную тему постили около 1-2 недели назад, поищи, там есть решение. :)

Хотя, вот так думаю будет работать:

window.addEventListener('click', function(e) {
    if(e.target.tagName == 'INPUT' && e.target.type = 'submit') {
        this.onbeforeunload = null;
    }
});


А лучше так:
window.addEventListener('submit', function(e) {
    this.onbeforeunload = null;
}, true);

danik.js 09.01.2015 20:42

дежавю )

ToshuK 10.01.2015 13:35

Не, ни один из вариантов вообще не работает, даже на закрытие/перезагрузку страницы :(


Часовой пояс GMT +3, время: 23:33.