Используйте JQuery или onbeforeunload для IE и FF

Я работаю в приложении Flex4, используя javascript, в документе "index.template.html". У меня возникла проблема с возможностью использовать onbeforeunload с Firefox. Приложение отлично работает в IE, но точно такое же не подходит для FF. (Увидеть ниже)

<script type="text/javascript">
window.onbeforeunload=before;
window.onunload=after;

function before(evt)
{
   var flex=document.$(application)||window.$(application);
   flex.unloadMethod(); //custom method to log out the user
}

function after(evt)
{

}
</script>

Из того, что я обнаружил, FF, похоже, не регистрирует события перед загрузкой, поэтому я обнаружил, что вместо этого популярной вещью является связывание с JQuery. Итак, я удалил приведенный выше код и заменил его на приведенный ниже код, но он не отображает всплывающее окно, когда пользователь пытается покинуть страницу в IE и FF. Любой, кто, кажется, использует JQuery для этого, похоже, делает то же самое, поэтому я не знаю, что происходит.

<script type="text/javascript">
$(window).bind("beforeunload",function(event){
   return "This should create a pop-up";
});
</script>

В конце концов было бы неплохо вызвать "flex.unloadMethod", как в первом фрагменте кода, но пока я просто пытаюсь заставить всплывающее окно работать, чтобы я знал, что я на правильном пути. Любое понимание будет с благодарностью.

2 ответа

Решение

Пытаться:

<script>
    $(window).on('beforeunload', function(){
        return "This should create a pop-up";
    });
</script>

Пример: http://jsfiddle.net/AeztA/3/

Хочу добавить, что я понял, что вы не можете использовать пустую строку в Firefox. Он должен быть как минимум 1 пустым, например, в качестве возврата.

var text = 'Exit Message';

$(window).on('beforeunload', function(){
    return " " + text;
});
Другие вопросы по тегам