2011-05-13 3 views
0
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에 내장되어 있습니다.언로드가 IE9 및 FF4에서 작동하지 않습니다.

누구나 onunload의 문제점을 제안 할 수 있습니까? 브라우저가 닫힐 때 데이터를 안정적으로 보내고 모든 브라우저에서 onunload가 일관되게 작동하는 방법이 있습니까?

답변

0

위 코드는 다음과 같습니다. 사용자가 브라우저를 닫으려고하면 데이터를 보내려고합니다. Onunload 메서드는 IE7 및 IE8에서는 작동하지만 IE9 및 FF4에서는 작동하지 않습니다. 응용 프로그램은 Flex 3.0 SDK에 내장되어 있습니다.

얼마나 중요한지 잘 모르겠지만 처리기로 할당하기 전에 함수 호출을 시도하십시오.

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

당신은 아마 브라우저가 폐쇄가 확실 할 때 여기에 대신 return

사람으로 onUnload의 문제 무엇을 제안 할 수 있습니다 해결책이되어 에 보낼 데이터의 alert()을 원하는 방법으로 onUnload 일 은 모든 브라우저에서 일관되게 나타 납니까?

불행히도 사용자는 귀하의 페이지가 닫히고 그것을 우회 할 수 있습니다. 그들은 또한 구글 크롬의 프로세스 모니터를 사용하여 탭을 없앨 수 있습니다. 마지막으로 응용 프로그램을 강제 종료 할 수 있습니다. 이 기능을 최종 솔루션으로 사용하는 것은 좋지 않습니다.

+0

요구 사항 : 브라우저가 닫힐 때 경고 메시지 표시. 브라우저가 닫힐 때만 데이터를 보냅니다. onbeforeunload 메서드 return을 사용하여 기본 경고를 표시합니다. 경고는 작동하지만 ok 및 취소 옵션을 사용하면 경고 메시지로 작동하지 않습니다. – user751674