JS 브 라 우 저 창 닫 기 이벤트 에 대한 감청 방법 모음 집

4990 단어
이 사례 는 JS 가 브 라 우 저 창 을 닫 는 사건 에 대한 감청 방법 을 요약 했다.여러분 께 참고 하도록 공유 하 겠 습 니 다. 구체 적 으로 는 다음 과 같 습 니 다.
방식 1: (IE 브 라 우 저 에 적용 되 며, 새로 고침 은 알림 없 이 브 라 우 저 닫 기 단 추 를 눌 렀 을 때 만 알림)


window.onbeforeunload=onclose;
function onclose()
{
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{
return "     ?";
}
}



방식 2: IE 와 FF 에 적용 되 며, 새로 고침 과 닫 기 구분 없 음


  window.onbeforeunload = onbeforeunload_handler;
  window.onunload = onunload_handler;
  function onbeforeunload_handler(){
    var warning="    ?";
    return warning;
  }
  function onunload_handler(){
    var warning="    ";
    alert(warning);
  }



방식 3: IE 와 FF 에 적용 되 며 새로 고침 과 닫 기 를 구분 하지 않 고 가장 간단 합 니 다.


window.onbeforeunload=onclose;
function onclose()
{
return "      ?";
}



방식 4: IE 와 FF 에 적용 되 며 새로 고침 과 닫 기 를 구분 하지 않 고 약간 복잡 합 니 다.


var MSG_UNLOAD="           ,           ,    ?";
var UnloadConfirm = {};
//         、     
UnloadConfirm.set = function(confirm_msg){
  window.onbeforeunload = function(event){
    event = event || window.event;
    event.returnValue = confirm_msg;
  }
}
//         、     
UnloadConfirm.clear = function(){
  window.onbeforeunload = function(){};
}
UnloadConfirm.set(MSG_UNLOAD);



방식 5: IE6 의 닫 기 단추 와 단축 키 로 만 닫 을 수 있 습 니 다. 새로 고침 은 알림 이 없습니다.


window.onbeforeunload=onclose;
function onclose()
{
var warnning = '<fmt:message key="systemMessage.exitWarning" />';
var beforeExit='<fmt:message key="systemMessage.beforeExitWarning" />';
 if(event.clientY<0 && event.clientX>document.body.clientWidth-20 || event.clientY<0 && event.clientX<20 ||
event.altKey || event.ctrlKey || event.clientY>document.body.clientHeight){
alert(beforeExit);
return warnning;
}
}



브 라 우 저 종 류 를 판단 하 는 JS 추가


    var Sys = {};
    var ua = navigator.userAgent.toLowerCase();
    if (window.ActiveXObject)
      Sys.ie = ua.match(/msie ([\d.]+)/)[1]
    else if (document.getBoxObjectFor)
      Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1]
    else if (window.MessageEvent && !document.getBoxObjectFor)
      Sys.chrome = ua.match(/chrome\/([\d.]+)/)[1]
    else if (window.opera)
      Sys.opera = ua.match(/opera.([\d.]+)/)[1]
    else if (window.openDatabase)
      Sys.safari = ua.match(/version\/([\d.]+)/)[1];
    //      
    if(Sys.ie) document.write('IE: '+Sys.ie);
    if(Sys.firefox) document.write('Firefox: '+Sys.firefox);
    if(Sys.chrome) document.write('Chrome: '+Sys.chrome);
    if(Sys.opera) document.write('Opera: '+Sys.opera);
    if(Sys.safari) document.write('Safari: '+Sys.safari);



브 라 우 저, IE, FF 를 구분 하여 각각 처리 합 니 다.


window.onbeforeunload=onclose;
function onclose()
{
var Sys = {};
var warnning = '<fmt:message key="systemMessage.exitWarning" />';
var ua = navigator.userAgent.toLowerCase();
if (window.ActiveXObject)
  Sys.ie = ua.match(/msie ([\d.]+)/)[1]
else if (document.getBoxObjectFor)
  Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1]
if(Sys.ie) {//for IE
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{
window.event.returnValue = warnning ;
}
}
if(Sys.firefox) //for FF
return warnning;
}



브 라 우 저 유형 을 가장 간단하게 판단 하 는 방법


if(-[1,]){
   alert("   IE   !");
}else{
   alert("  IE   !");
}



[1,] 표준 브 라 우 저 에 서 는 문자열 '1' 을 되 돌려 줍 니 다. [1,]. toString 을 호출 하 는 것 과 같 고 IE 는 '1' 을 되 돌려 줍 니 다.그러나 이렇게 하면 IE 와 기준 이 모두 검 사 를 통과 하기 때문에 마이너스 번 호 를 사용 하여 강제로 숫자 로 전환 합 니 다.
표준 이 1, 1 로 성공 적 으로 바 뀌 면 if 에서 자동 으로 true 로 바 뀌 고 IE 는 NaN 으로 바 뀌 면 자동 으로 false 로 바 뀝 니 다!
자 바스 크 립 트 와 관련 된 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,,,,, 및
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기