2014-10-01 4 views
0

Я хотел бы выполнить некоторый код, когда пользователь обновит страницу, но Firefox не выполнит мой код, и для меня ничего не работает. Я попробовал пример ниже, который не работает. У меня есть глобальная переменная, называемая websocket (window.websocket).Как я могу обнаружить событие закрытия FireFox?

window.onunload=function(){ 
    return window.websocket.send(JSON.stringify({type: 'disconnect'})); 
}; 

$(window).on("unload",function() { 
    return window.websocket.send(JSON.stringify({type: 'disconnect'})); 
}; 

$(window).unload = function() { 
    return window.websocket.send(JSON.stringify({type: 'disconnect'})); 
}; 

window.addEventListener("unload", function (e) { 
    window.websocket.send(JSON.stringify({type: 'disconnect'})); 

    (e || window.event).returnValue = null;  //Gecko + IE 
    return null;        //Webkit, Safari, Chrome etc. 
}); 

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

window.addEventListener("beforeunload", function (e) { 
    var confirmationMessage = "\o/"; 

    (e || window.event).returnValue = confirmationMessage;  //Gecko + IE 
    return confirmationMessage;        //Webkit, Safari, Chrome etc. 
}); 

Я не хочу никаких сообщений, просто запустите мой код. Это невозможно с Firefox?

+0

Ваш последний пример кода работает в моей версии Firefox (32.0.3), протестирован здесь: http://jsfiddle.net/xq9ofw7x/ – Niklas

+0

да, но я не хочу никакого сообщения, я хочу запустить свой код, когда пользовательский выход, обновление или изменение страницы. Я знаю, что это работает, но я не об этом спрашиваю. Я хочу отправить сообщение на мой сервер, когда пользователь уйдет. – X4V1

+0

window.addEventListener («разгрузка», функция (e) { window.websocket.send (JSON.stringify (что-то)); }); Это то, что я хочу, но все еще не работает. – X4V1

ответ

0

Я нашел полурабочее решение.

window.onbeforeunload = closeSocket; 
function closeSocket(){ 
    window.websocket.send(JSON.stringify({type: 'disconnect'})); 
    return false; 
} 

У меня есть, чтобы скрыть подтверждающее сообщение, и это хорошо. Любая идея скрыть сообщение подтверждения?

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