감청 브 라 우 저 종료 이벤트
2631 단어 JavaScripthtml브 라 우 저각본
Onunload 와 Onbeforeunload
Onunload, onbeforeunload 는 새로 고치 거나 닫 을 때 호출 되 며, < script > 스 크 립 트 에서 window. onload 를 통 해 지정 하거나 < body > 에서 지정 할 수 있 습 니 다.onbeforeunload 가 onunload 전에 실행 되 는 것 과 달리 onunload 의 실행 을 막 을 수 있 습 니 다.
Onbeforeunload 도 페이지 가 새로 고침 되 거나 닫 힐 때 호출 됩 니 다. Onbeforeunload 는 서버 에 가서 새로운 페이지 를 읽 으 려 고 할 때 호출 됩 니 다. 아직 읽 기 시작 하지 않 았 습 니 다.onunload 는 서버 에서 불 러 올 새로운 페이지 를 읽 었 습 니 다. 현재 페이지 를 바 꿀 때 호출 합 니 다.Onunload 는 페이지 의 업데이트 와 닫 기 를 막 을 수 없습니다.Onbeforeunload 는 할 수 있 습 니 다.사용자 가 중간 에 시험 에서 물 러 나 는 것 을 방지 하 는 시험 시스템 을 만 들 었 습 니 다. 코드 는 다음 과 같 습 니 다.
<script type="text/javascript">
<!--
window.onbeforeunload = onbeforeunload_handler;
window.onunload = onunload_handler;
function onbeforeunload_handler(){
var warning=" ?";
return warning;
}
function onunload_handler(){
var warning=" ";
alert(warning);
}
// -->
</script>
사용자 가 창 을 닫 는 것 을 확인 한 후에 페이지 에 제출 해 야 할 폼 이 있 습 니 다. 그러나 폼 을 제출 할 때 window. onbeforeunload 이벤트 가 발생 하 는 것 을 발견 하 였 습 니 다. 즉, 창 을 닫 고 폼 을 제출 할 때 같은 알림 정보 가 두 번 씩 나타 나 므 로 코드 조정 은 다음 과 같 습 니 다.
JavaScript 코드:
<script type="text/javascript">
<!--
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(){};
}
function onunload_handler(){
UnloadConfirm.clear();
document.forms[0].submit();
}
function closeWin(){
window.close();
}
function initPage(){
UnloadConfirm.set(MSG_UNLOAD);
}
initPage();
window.onunload = onunload_handler;
// -->
</script>
HTML 코드:
<input type="button" value=" " onclick="closeWin()"/>
<form action="#"></form>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.