2016-11-28 8 views
-1

Я пытаюсь предупредить пользователей перед тем, как перейти на другую страницу в приложении, если есть несохраненная информация. Я следую совету от several stackoverflows, чтобы использовать .beforeunload , но он работает только при обновлении страницы, а не при нажатии ссылки на другую страницу на сайте. Я не понимаю, как использовать beforeunload или мне нужен другой прослушиватель событий?.beforeunload работает только с обновлением

application.js

//= require forms.js 

forms.js

$(window).on('beforeunload', function() { 
    console.log('unloading') 
}); 
+0

Он должен срабатывать, когда вы нажимаете на ссылку, чтобы перейти на другой сайт/страницу. – epascarello

+0

@epascarello это не происходит, когда вы переходите на другую страницу на сайте. любые мысли о том, почему? – gwalshington

+0

У вас есть это, поэтому вы сохраняете журнал при переходе на страницу? О каком браузере мы имеем дело? – epascarello

ответ

0

beforeunload событие работает так:

// Fires just before leaving/refreshing the page. Handler will 
    // be passed the event object and if a returnValue is set on the 
    // event, the browser will display a confirmation dialog with the 
    // returnValue message displayed. 
    window.addEventListener("beforeunload", function (evt) { 
     evt.returnValue = "Setting this to anything but an empty string, causes this to work!"; 
    }, false); 

См this Fiddle для примера.

+0

Так в чем проблема с кодом OPs? – epascarello

+0

@epascarello Она не устанавливает 'returnValue' в объект события. Как и мои комментарии. –

+0

Он должен хорошо работать, как это имеет OP, вы можете отключить материал внутри без returnValue. – epascarello