В этом часто возникает необходимость, то есть при выходе из определенной веб -страницы пользователь не обязательно нажимает, чтобы выйти из системы, что приведет к тому, что сеанс не будет уничтожен вовремя. Чтобы реализовать функцию автоматического входа в систему, когда пользователь покидает страницу, команда журнала должна быть отправлена в функции обработки событий OnbeForeUnload на веб -странице. Это место в основном реализовано с использованием Ajax. Иногда это также включает в себя проблемы с междоменом. В этом месте есть проблема совместимости браузера.
Есть два балла несовместимости браузеров при работе с этим требованием:
1. Несовместимость При работе с Ajax JQuery используется для решения его здесь.
2. Несовместимость при отправке запроса AJAX
Основной код заключается в следующем:
function logout () {var logouturl = "xxxx"; // url используется для выхода из пользователя if (logouturl == "") return; var userAgent = navigator.useragent.tolowercase (); if (useragent.indexof ("msie")>-1) {// ie $ .ajax ({url: logouturl, crossdomain: true, async: false, datatype: "jsonp"}); } else {// firefox chrome $ .ajax ({url: logouturl, async: false}); }} window.onbeforeUnload = function () {logout (); };Описание кода:
Firefox имеет высокий уровень безопасности при обработке JS. Многие разрешения, которые JS может использовать в IE и Chrome, ограничены в Friefox, поэтому
if (useragent.indexof ("msie")>-1) {// ie} else {// firefox chrome}Этот код определяет текущий тип браузера.
Совместимый код для Firefox и Chrome заключается в следующем:
$ .ajax ({url: logouturl, async: false});Асинхронность должна быть установлена на false, то есть он синхронно, и истинный асинхронный метод не может быть использован, в противном случае запрос не может быть отправлен. На самом деле, Chrome также подходит для следующего кода IE. Когда браузер выключен, команда журнала будет автоматически отправлена. Однако при нажатии кнопки обновления браузера он также надеется автоматически вывести пользователя. Chrome может использовать только вышеупомянутую строку кода для выпуска запроса входа в систему.
Совместимый код для IE заключается в следующем:
$ .ajax ({url: logouturl, crossdomain: true, async: false, datatype: "jsonp"});CrossDomain устанавливается в соответствии с решениями о междоменном доступе. Если этой проблемы не существует, этого свойства можно игнорировать. Лучше всего установить асинхровый атрибут false, и True также в порядке. DataType: свойство "JSONP" также используется для решения проблем с междоменом. Он используется в сочетании с CrossDomain. Там нет проблем с междоменной. Эти два свойства могут быть опущены.
Приведенный выше код был протестирован в IE9, Chrome27 и Firefox21.
Выше приведено краткое обсуждение, которое редактор приносит вам о событии Window.onbeforeUnload (), вызывает ajax (название). Я надеюсь, что все поддерживают wulin.com ~