1

내 응용 프로그램에서 onbeforeunload()에서 logout 함수를 호출해야하므로 아래 코드를 수행했습니다.자바 스크립트에서 onbeforeunload

window.onbeforunload = function(){ 
bodyWidth = window.document.body.offsetWidth; 
bodyHeight = window.document.body.offsetHeight 
mouseX = window.event.clientX; 
mouseY = window.event.clientY; 
    if((mouseX<0) || (mouseY<0) || (mouseX > bodyWidth) || (mouseY > bodyHeight)){ 
     logout(); 
    } 
} 

내가 IE에서 (X) 버튼을 눌러 창을 닫습니다 때 잘 작동합니다. 내가 눌러하여 IE 창을 닫을 경우

그러나 ATL + F4이 일을하지. logout() 함수를 실행하기 전에 브라우저가 닫힙니다.

window.onbeforunload을 올바르게 사용하면 도움을 줄 수 있습니까?

난 아래의 기능을 시도하지만, 창을 닫습니다 모든 작업을 아는 것은 불가능하다

logout=true; 
window.onbeforeunload = bfunload; 
window.onunload = unloadPage; 
function bfunload(){ 
bodyWidth = window.document.body.offsetWidth; 
bodyHeight = window.document.body.offsetHeight 
mouseX = window.event.clientX; 
mouseY = window.event.clientY; 
    if((mouseX<0) || (mouseY<0) || (mouseX > bodyWidth) || (mouseY > bodyHeight)){ 
     logout=false; 
     logout(); 
    } 
} 
function bfunload(){ 
if(logout){ 
    logout(); 
} 

}

+0

미래에 모든 질문을 굵게 표시하지 마십시오. 답변을 얻는 데 도움이되는 것은 없습니다. – epascarello

+1

이 보안 수준이 높은 사이트입니까? JavaScript를 사용자 시스템 엔진으로 사용하지 마십시오. 모든 브라우저에서 쉽게 비활성화되어 사용자 로깅에 매우 결함이 있습니다. – George

+0

@epascarello sure – sasikals26

답변

2

를 작동하지 않았다. 사용자가 데스크톱에서 코드를 누를 경우 코드가 실행되지 않습니다. 허리케인이 와서 힘을 내 보낸다. 그들은 인터넷 연결이 느슨한 경우. 그들이 주소 표시 줄/북마크를 통해 이동하는 경우.

종료 세션을 처리하는 유일한 방법은 서버의 세션 시간 초과입니다.

0

자바 스크립트 window.onbeforeunload() 이벤트는 웹 페이지가 언로드되기 직전에 시작됩니다. 이렇게하면 사용자가보고있는 페이지를 떠나는 것이 확실한지 확인할 수 있습니다.

Alt+F4을 누르면 OS가 브라우저 응용 프로그램을 직접 닫습니다. 창이 열리지 않으면 종료 대화 상자가 나타납니다.

Logout Functionality을 수행하는 가장 좋은 방법은 응용 프로그램에 Sessions을 사용하는 것입니다.