выгрузка не работает в IE9 и FF4 - PullRequest
0 голосов
/ 13 мая 2011
var unloadOK = "false";//used as variable when data need to be send to the server
window.onbeforeunload = CheckBeforeUnload;
window.onunload = CheckUnload 

function CheckBeforeUnload(){
  document.getElementById("ContentPlayer").CheckUnload("");
  return "Are you sure you want to exit?"
}

function CheckUnload(){
  unloadOK = "true"; 
  pause(1000);

  alert("session saved");
}

function pause(millis) 
{
  var date = new Date();
  var curDate = null;

  do { 
    curDate = new Date(); 
  } while(curDate-date < millis);
} 

Выше приведен код: я пытаюсь отправить данные, когда пользователь пытается закрыть браузер.
Метод onunload работает в IE7 и IE8, но не в IE9 и FF4. Приложение встроено в Flex 3.0 SDK.

Кто-нибудь может подсказать, в чем проблема с onunload, есть ли решение для надежной отправки данных, когда браузер закрывается, и как onunload работает последовательно во всех браузерах?

1 Ответ

0 голосов
/ 13 мая 2011

Выше код: я пытаюсь отправить данные, когда пользователь пытается закрыть браузер. Onunload метод работает в IE7 и IE8, но не в IE9 и FF4. Приложение встроено в Flex 3.0 SDK.

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

function CheckBeforeUnload(){
  document.getElementById("ContentPlayer").CheckUnload("");
  return "Are you sure you want to exit?"
}

Вы, вероятно, хотите здесь alert() вместо return

Может кто-нибудь подсказать в чем проблема с onunload есть решение надежно отправлять данные, когда браузер закрытие и как работает onload последовательно во всех браузерах?

К сожалению, пользователь может просто закрыть вкладку, на которой находится ваша страница, и обойти ее. Они могут также использовать, скажем, монитор процессов Google Chrome для уничтожения вкладки. Наконец, они могут принудительно выйти из приложения. Плохо полагаться на эту функциональность как на конечное решение.

...