2013-09-10 4 views
1

У меня есть текстовое поле, и я подключил к нему размытие. Я использую это для отправки запроса Ajax, когда пользователь фокусируется на других элементах страницы. Когда пользователь закрывает браузер или вкладку в браузере, я хочу, чтобы событие on-blur также запускалось. Я не хочу использовать выгрузку, потому что он не работает в некоторых браузерах. Будет ли срабатывание события on-blur при закрытии окна или есть способ отправки запроса Ajax при закрытии окна.будет запускать событие onblur при закрытии окна

+0

Нет 'onblur' не получит огонь, когда окно закрывается .. – Pranav

+0

Даже уволят, как каждый браузер обрабатывать поведение выгрузить браузер будет не делать какие-либо обходной путь соответствующих насколько известно –

+0

Вы не сможете позвонить. Это состояние гонки, и браузер собирается убить соединение. – epascarello

ответ

0

Свойство onblur можно использовать для установки обработчика размытия в окне, которое запускается, когда окно теряет фокус. Вы можете использовать что-то вроде этого, чтобы получить триггер события размытия, когда пользователь меняет окно.

http://jsfiddle.net/xkDgQ/

HTML

<p>click on another window to fire the blur event for this browser window</p> 

JavaScript

window.onblur = blurText; 

function blurText() { 
    alert("blur event detected!"); 
    // remove the event to stop an infinite loop! 
    window.onblur = ''; 
} 
0

Нет, только onunload и onbeforeunload срабатывают на окне кло se, и даже тогда не во всех браузерах. Прекращение сеанса просмотра, как правило, выходит за рамки управления js.

PS: Даже если они делают огонь, я не думаю, что во время выполнения будет иметь достаточно времени или памяти, выделенной для создания и огнестойкость объекта XHR ...

1

Предполагая, ваше на размытость событие происходит на «целевой» класс элемента.

Вы также можете присоединить событие к методу beforeunload.

$(window).bind('beforeunload',function(){ 
$(".target").blur(); 
}); 

И событие размытия не пузырится в Internet Explorer. Поэтому скрипты, которые полагаются на делегирование событий с событием размытия, не будут работать последовательно в браузерах.

Пожалуйста, проверьте

http://api.jquery.com/blur/

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