2010-06-15 3 views
2

분명히 IE8에는 '즐겨 찾기 웹 사이트 데이터 보존'옵션이 있습니다. 확인란을 선택 해제해도 브라우저는 마지막 창을 닫을 때까지 쿠키를 유지합니다.하나의 창이 열려 있어도 쿠키를 강제로 삭제하는 방법은 무엇입니까?

문제 시나리오. somesite.com에 로그인했다가 로그 아웃하지 않고 창을 닫았지만 다른 IE8 창이 열려 있다고 해봅시다. 이 경우 IE8은이 사이트의 쿠키를 보관합니다. 따라서 사이트를 다시 열면 (동일한 창 또는 다른 사이트) 사이트에서 로그인 정보를 묻지 않습니다.

클라이언트는 사용자가 브라우저를 종료하자마자 웹 응용 프로그램을 로그 오프하려고합니다. IE8이 저장하는 쿠키를 강제로 삭제할 수 있습니까? 또는 로그 아웃 버튼을 클릭 할 때까지 사용자가 창을 닫지 않도록 할 수 있습니까?

답변

2

감사합니다 모두, 나는 당신을 포함하여 많은 방법을 시도하고 작동시키지 못했습니다.

내 솔루션은 다음과 같습니다. 사용자가 X 버튼 (브라우저 닫기)을 클릭하면 자바 스크립트 onunload 함수가 호출됩니다. 이 기능은 logout 버튼을 클릭하는 것과 같습니다. 이 함수는 로그 오프가 실행될 때까지 브라우저를 일시 중지합니다.

코드 :

window.onunload = function() { 
    document.getElementById('logoutLink').click(); 
    windows.setTimeout(doNothingFunction,2000); 
} 

한 부작용이 기능은 실제로 사용자가 현재 페이지에서 탐색 할 때마다 호출 될 것입니다뿐만 아니라 창 가까이에.
해결 방법 페이지에서 페이지로 이동할 때 closingWindow 플래그가 false으로 설정됩니다. 그러나 사용자가 X 버튼을 클릭하면 플래그가 false로 설정되지 않습니다.

부작용을 해결하는 새로운 기능.

window.onunload = function() { 
    if (closingWindow){ 
     document.getElementById('logoutLink').click(); 
     windows.setTimeout(doNothingFunction,2000); 
    } 
} 
1

브라우저의 onunload 이벤트에 만료 날짜가 잘못된 쿠키를 설정할 수 있습니까?

1

자유로운 ajax 요청을 보내어 창의 존재를 제어 할 수 있습니다. 클라이언트가 새 페이지를로드하면 최종 점검 요청 시간을 확인해야합니다.

관련 문제