함수 window.onunload() {
" // 사용자가 비정상적으로 닫혔을 때 실행되어야 하는 액션 Location = 'Handler1.ashx';
}
}
Handler1.ashx:
/// $codebehindclassname$
에 대한 요약 설명 ///
context.Session.Abandon();
Session.Clear() ;
}
public bool IsReusable
{
{
return false;
}
}
}
}
설명 :
onBeforeUnload에서는 화면의 이러한 좌표 속성이 일반 값이라는 점에 유의해야 합니다.
screenLeft: 화면 왼쪽 위 모서리를 기준으로 브라우저 클라이언트 영역 왼쪽 위 모서리의 x 좌표를 가져옵니다.
screenTop: 화면 왼쪽 상단을 기준으로 브라우저 클라이언트 영역 왼쪽 상단의 y 좌표를 가져옵니다.
형태가 소멸되면 특별한 값이 생성될 것 같아요. 일반적인 상황의 클릭 테스트에서는 값이 이 값을 초과하지 않습니다.
이제 문제는 onBeforeUnload에서 window.location을 사용하면 지정된 URL에 정상적으로 요청을 제출할 수 있지만 onUnload 이벤트에서는 이 메서드를 효과적으로 실행할 수 없다는 것입니다. 해결책은 새 창을 열고 닫는 것입니다.
과거에 사용된 일련의 window.locations를 대체하기 위해 이와 같은 내용을 작성할 수 있습니다. 포털에는 여러 서버 간 웹 사이트 서버가 포함되어 있기 때문입니다. 통합출입구에서 퇴장하신 후 순차적으로 퇴실하셔야 포털사이트에서 원하는 효과를 얻으실 수 있습니다.
var newWindow;
window.opener=null;
newWindow=window.open(URL,PageName, 'height=0,width=0')
newWindow.opener=null; >newWindow.close()
…
일명 클리어는 기본적으로 새 창을 열어서 바로 나가기 기능이 있는 페이지를 호출하는 것입니다. 통화가 종료될 때 1~2초 동안 일시 중지되거나 전용 종료 페이지에서 창이 닫힐 수 있습니다. 이 페이지와 일반 종료 후 홈페이지로 다시 전환하는 방법의 차이점은 종료 후 자동으로 닫히고 별도의 조작 없이 바로 열 수 있다는 점입니다.
[참고] window.onUnload에서 판단이 이루어지지 않으면 페이지를 새로 고치는 등 현재 페이지가 변경될 때 이 이벤트가 트리거됩니다. 따라서 일부 정상적인 동작을 차단하기 위해서는 특정 동작을 포착하는 판단이 이루어져야 한다.
계속: 사용자가 IE에서 창을 직접 닫기 전에 세션을 지우는 방법
어제 구현 아이디어를 설명했는데, 실제 동작에서는 프로그램이 정상적으로 실행될 수 있도록 딜레이를 추가해야 한다는 것을 알게 되었습니다. 구현 세부 사항은 간단한 시간 지연 기능과 함께 아래에 첨부되어 있습니다. 코드가 테스트되었습니다.