2012-10-25 2 views
-1

이 기능에 문제가 있습니다. 나는 설명 할 것이다 - 사용자가 브라우저를 닫으면 기능을 실행해야한다. 이 함수는 JavaScript- saveCookieScriptPrefOnLogOut()로 작성합니다.사용자가 브라우저를 닫을 경우 기능 실행

내가이 솔루션이 (I이 사용 유래에서 정보 writed) :이 솔루션

var inFormOrLink; 
$('a').live('click', function() { inFormOrLink = true; }); 
$('form').bind('submit', function() { inFormOrLink = true; }); 

$(window).bind('beforeunload', function(eventObject) { 
var returnValue = undefined; 
if (! inFormOrLink) { 
    saveCookieScriptPrefOnLogOut(); 
} 
saveCookieScriptPrefOnLogOut(); 
return true; 
}); 

문제입니다 : 질문 모든 브라우저 디스플레이 창은 "당신이 정말로 닫으시겠습니까?"

이 정보/창을 숨겨야합니다. 두 번째 문제 (덜 중요하지만 여전히 중요하지 않음) - FF 및 IE는 링크 또는 양식 제출을 클릭하면이 기능이 실행됩니다. 링크 및 양식 제출을 무시해야합니다.

솔루션은 크로스 브라우저 솔루션 (IE, Chrome, FF : Windows에서 가장 중요한 것은 IE 임)이어야합니다. 나는 PHP와 자바 스크립트를 사용할 수있다.

이 문제를 어떻게 해결할 수 있습니까? 이벤트 핸들러 (더 return 문이 암시 적으로 undefined 반환) 대화 상자가 표시되지 않습니다에서 undefined을 반환하는 경우 또한, 당신이 상관없이 inFormOrLinksaveCookieScriptPrefOnLogOut라고 ..

var inFormOrLink = false; 

$('a').live('click', function() { inFormOrLink = true; }); 
$('form').live('submit', function() { inFormOrLink = true; }); 

$(window).bind('beforeunload', function() { 
    if(!inFormOrLink) { 
     saveCookieScriptPrefOnLogOut(); 
    } 
}); 

:

+0

사용자가 브라우저를 닫아야하는 이유는 무엇입니까? 페이지로드가 끝나면 왜 쿠키를 쓸 수 없습니까? 이것은 웹 페이지와 같은 무국적 환경에서의 개발에 대한 잘못된 접근 방식입니다. – deceze

+0

여기에 비슷한 질문이 있습니다. http://stackoverflow.com/questions/6107967/javascript-jquery-crossbrowser-detection-when-user-is-closing-the-browser –

답변

관련 문제