Вызов функции onunload из iframe - PullRequest
1 голос
/ 07 июня 2011

Я работаю над многопользовательской шахматной игрой в виде приложения для Facebook.Если один игрок покидает игру, закрывая браузер, другой игрок должен получить уведомление.Поэтому, если один игрок закрывает Brwoser, должна быть вызвана функция unlink, чтобы отсоединить игрока.Это прекрасно работает с onunload за пределами Facebook.Проблема в том, что приложения facebook загружаются в iframes, а событие onunload там не работает.

Поэтому мне нужен способ вызова функции внутри iframe, когда пользовательзакрытие браузера.

1 Ответ

1 голос
/ 08 июня 2011

Вероятно, это не тот ответ, который вы ищете, но «выход из системы» на unload никогда не будет работать надежно. В качестве крайнего примера рассмотрим случай, когда браузер падает или уничтожается с помощью диспетчера задач Windows. Так что вам лучше реализовать дополнительный механизм, чтобы определить, ушел ли пользователь. Обычно это делается путем периодической отправки запроса на сервер. Если этот запрос не получен в течение значительного времени (то есть что-то, что не может быть вызвано медленным соединением или другими сбоями), вы отменяете связь с пользователем.

Тем не менее, я протестировал Firefox 4 и MSIE 8 и оба корректно запускают событие unload в кадре, если вкладка или браузер закрыты. Chrome 12 этого не делает, это, вероятно, браузер, с которым вы тестировали. Я считаю это ошибкой Chrome.

...