2014-11-24 3 views
0

Я использую подключение к Интернету для связи. Но когда пользователь обновляет страницу, я хочу закрыть это подключение к веб-сокету. Я также использую окно window.onbeforeunload для отображения окна подтверждения пользователю с настраиваемым пользователем text.IF, который выбирает вариант «не перезагружать», тогда никаких действий (который работает нормально) Но я хочу закрыть соединение с веб-сокетом, если пользователь выбирает вариант перезагрузки , Я не знаю, как это сделать. Я попытался вызвать window.unload и попытался закрыть соединение с веб-сокетом, но не работал. Модем выглядит следующим образом.Как позвонить window.unload

window.onbeforeunload = function(e) { 
    return "you are closing this web page'; 
}; 


window.unload = function(e) { 
    webSockect.closeConnection(); 
}; 

Прошу совета, как этого добиться.

ответ

0

Оконные события с префиксом on.

Попробуйте использовать window.onunload = ... или даже лучше

window.addEventListener('unload', ...).

При использовании addEventListener вы указываете название мероприятия без префикса on.

Подробнее: WindowEventHandlers.onunload

0

Прежде всего, это ошибка синтаксиса в приведенном выше коде, вы писали:

window.onbeforeunload = function(e) { 
    return "you are closing this web page'; 
}; 

Таким образом, тип кавычек должен быть одинарной или двойной, то же самое в начале и в конце строки.

Он должен быть, и он будет работать:

window.onbeforeunload = function(e) { 
    return "you are closing this web page"; 
}; 

====

Назад к точке. Все, что вы можете сделать с помощью команды unload, - это изменить сообщение. Все, что в противном случае не работает, как:

  • Изменение действия на кнопки в командной строке
  • Изменение кнопки текст запроса
  • Изменение интерфейса коробки

Q. даже вы пишете что-то перед return, если функция , которая будет игнорироваться браузером.

+1

Функция Window.unload не поддерживается всеми браузерами, поэтому функция onBeforeUnload лучше. Также вы можете найти список событий, когда эта функция активирована: [OnBeforeUnload - Список событий] (http://stackoverflow.com/questions/138411/catching-a-tab-close-event-in-web-browser) – Rajesh

0

Фактически вы можете запустить метод close, если вы назначите метод переменной и затем вернете переменную.

function unloadWebSocket() 
{ 
    webSockect.closeConnection(); 
} 

window.onbeforeunload = function(e) 
{ 
    var x = unloadWebSocket(); 
    return x; 
}; 

Хотя у меня нет опыта работы с веб-сайтами, я знаю, что это работает с синхронными запросами ajax.

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