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 로 바 뀝 니 다!
자 바스 크 립 트 와 관련 된 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,,,,, 및
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.