В сафари не происходит вызов $ .post - PullRequest
5 голосов
/ 05 апреля 2011

У меня странная проблема. при закрытии браузера Safari мне нужно вызвать одну функцию с помощью jquery post. но это не звонит при закрытии браузера сафари. Но красота работает во всех других браузерах.

Ниже мой кусок кода,

<script language="JavaScript">
window.onbeforeunload = confirmExit;
function confirmExit()
{
   $.post("test.php");
}
</script>

Пожалуйста, получите эту работу в сафари.

Спасибо, Динеш Кумар Манохаран

Ответы [ 2 ]

8 голосов
/ 05 апреля 2011

Это может быть связано с тем, что вы делаете асинхронную публикацию, и Safari прекращает запуск JavaScript (из-за выгружаемой страницы), прежде чем он отправит запрос.Попробуйте сделать блокировку вызова, используя $.ajax вместо $.post и установив async в false.Что-то вроде (не проверено):

function confirmExit() {
    $.ajax({
        'async': false,
        'type': 'POST',
        'url': 'test.php'
    });
}
1 голос
/ 05 апреля 2011

Согласно Mozilla MDC , window.onbeforeunload ничего не возвращает в Safari, поэтому измените ваш код в соответствии с приведенным выше примером.

В SO * 1005 есть еще один поток* об этом .Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...