2015-09-17 2 views
0

У меня есть следующий код:JavaScript/PHP всплывающих окон при обновлении страницы

<script> 
    var myEvent = window.attachEvent || window.addEventListener; 
    var chkevent = window.attachEvent ? 'onbeforeunload' : 'beforeunload'; 

    myEvent(chkevent, function(e) { 
     var confirmationMessage = 'HELLO'; 
     (e || window.event).returnValue = confirmationMessage; 
     return confirmationMessage; 
    }); 
</script> 

Который работает небольшой всплывающее окно, когда пользователь пробует обновить страницу скрипт работает на.

Однако, как я могу помешать ему запустить всплывающее окно, если они нажмут кнопку «Отправить»?

+0

ли в настоящее время запустить любое другое JavaScript кнопки отправить? –

+0

Нет, это не так. Это просто кнопка в форме с

. –

+0

Можно ли также остановить отображение окна, если они ПОЗЫВАЮТ страницу, т.е. нажмите другую ссылку в панели навигации? Я просто хочу, чтобы он показывал, что страница обновляется, если честно. –

ответ

0

Это должно сработать. Обратите внимание, что вам нужно обновить фрагмент сообщения, чтобы оно отображалось, но не при нажатии кнопки.

var myEvent = window.attachEvent || window.addEventListener; 
 
var chkevent = window.attachEvent ? 'onbeforeunload' : 'beforeunload'; 
 
var unloading = true; 
 

 
myEvent(chkevent, function(e) { 
 
    if(!unloading) return; 
 
    var confirmationMessage = 'HELLO'; 
 
    (e || window.event).returnValue = confirmationMessage; 
 
    return confirmationMessage; 
 
}); 
 

 
document.getElementById('submit').addEventListener('click', function(e){ 
 
    unloading = false; 
 
    // Because this button does nothing, the reload will load an empty page in SO 
 
    // However, note there is no beforeunload event actioned. 
 
    location.reload(); 
 
}); 
 

 
document.write('Current Time: ' + Date.now())
<input type="button" value="SUBMIT" id="submit" />

+0

У меня есть в качестве моей кнопки ввода и кода Javascript, который вы мне предоставили. Он работает, когда вы обновляете oage (т. Е. Сообщение об обновлении всплывает), но оно также появляется, когда вы нажимаете «Отправить»? Я хочу, чтобы кнопка «Отправить» просто правильно запускала форму action = «». –

+0

Не забывайте, что я добавил переменную, которая должна быть изменена при отправке. Возможно, лучше использовать 'yourForm.addEventListener ('' submit ', ...)' вместо щелчка по кнопке. Также обратите внимание, что в функции события «beforeunload» есть дополнительная строка. В противном случае я бы сказал, что мой фрагмент здесь работает, поэтому я не могу сказать, почему он не работает на вашем конце. – somethinghere

Смежные вопросы