2015-02-10 6 views
-1

Я хочу использовать два события javascript: onbeforeunload и внутри него мне нужно использовать onhashchange. Дело в том, чтобы покинуть страницу, если пользователь заполнил некоторые поля, тогда в сообщении подтверждения появится предупреждающий пользователь, хотят ли они оставаться на странице или уходить.предупреждает пользователей, прежде чем покинуть страницу, если они заполнили некоторые поля

Мой код следующий

 window.onbeforeunload = function (e) { 
     window.onhashchange = function (r) { return ''; } 
     }; 

Но, кажется, не работает этот код? Что я делаю не так?

[Обновлено] Опять же, что я пытаюсь добиться, я хочу, чтобы предупредить пользователя, если оставить на этой странице, и если они заполнили некоторые поля на странице

+1

Вы не можете обрабатывать одно событие внутри обработчика для другого события. То, что вы здесь делаете, связано с событием hashchange только при запуске beforeunload, но даже это мало смысла. Пожалуйста, опишите, какую проблему вы пытаетесь решить здесь (и _not_, просто повторяя то, что вы уже сказали). – CBroe

+0

Я обновил то, что я точно пытаюсь достичь, пожалуйста, проверьте – user4545762

+0

возможный дубликат [Попытка обнаружения события закрытия браузера] (http://stackoverflow.com/questions/20853142/trying-to-detect-browser-close-event) – Ravimallya

ответ

0

Вы можете попробовать

window.onbeforeunload = function (e) { 
     if (content on page changed) { confirm("Do you want to leave page?") } 

     }; 
window.onhashchange = function (r) { if (content on page changed) { confirm("Do you want to leave page?") } } 

Я только что дал псевдокод, вы можете заменить его фактическим кодом. Основная ошибка заключается в том, что вы пытаетесь связать событие onhashchange в onbeforeunload.