>웹 프론트엔드 >JS 튜토리얼 >'페이지 나가기'를 구현하는 방법은 무엇입니까? 저장되지 않은 변경사항을 확인하시겠습니까?

'페이지 나가기'를 구현하는 방법은 무엇입니까? 저장되지 않은 변경사항을 확인하시겠습니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-01 15:50:14409검색

How to Implement a

"이 페이지에서 벗어나시겠습니까?" 구현 방법 저장되지 않은 변경 사항이 있는 경우 확인

웹 페이지를 탐색할 때 저장되지 않은 변경 사항이 있는 페이지에서 벗어나기 전에 사용자가 확인 메시지가 나타날 수 있습니다. 이 확인은 계속 진행하면 저장되지 않은 변경 사항이 손실된다는 사실을 사용자에게 알리는 역할을 합니다. 이 기사에서는 이 기능을 구현하는 방법을 살펴보고 다양한 기능을 갖춘 브라우저에서 직면하는 특정 문제를 해결합니다.

한 가지 방법은 window.onbeforeunload 이벤트를 활용하는 것입니다. 역사적으로 이 이벤트에는 문자열 값을 할당하여 사용자 정의 확인 메시지를 표시할 수 있었지만 최신 브라우저는 이를 보안 위험으로 간주하여 이제 일반 메시지만 표시합니다. 그 결과 구현이 다음과 같이 단순화되었습니다.

// Enable navigation prompt
window.onbeforeunload = function() {
    return true;
};

// Remove navigation prompt
window.onbeforeunload = null;

레거시 브라우저 지원을 위해서는 보다 포괄적인 접근 방식이 필요합니다. window.onbeforeunload 이벤트에는 함수 참조가 할당되어야 하며, 이전 브라우저에서는 이벤트의 returnValue 속성이 설정되어야 합니다.

var confirmOnPageExit = function (e) {
    // Get the event object
    e = e || window.event;

    // Set the return value to display the message
    if (e) {
        e.returnValue = 'Confirm exit? Unsaved changes will be lost.';
    }

    // Return the message for newer browsers
    return 'Confirm exit? Unsaved changes will be lost.';
};

확인 프롬프트를 전환하려면 확인 OnPageExit 함수를 window에 할당하기만 하면 됩니다. onbeforeunload를 사용하여 활성화하고 기능을 제거하여 비활성화합니다.

// Turn it on
window.onbeforeunload = confirmOnPageExit;

// Turn it off
window.onbeforeunload = null;

저장되지 않은 변경 사항을 추적하려면 다음을 사용해야 합니다. 사용되는 특정 검증 프레임워크. 예를 들어 jQuery에서 다음 코드 조각은 입력 필드의 변경 사항을 모니터링하고 확인 프롬프트를 트리거하는 방법을 보여줍니다.

$('input').change(function() {
    if( $(this).val() != "" ) {
        window.onbeforeunload = confirmOnPageExit;
    }
});

위 내용은 '페이지 나가기'를 구현하는 방법은 무엇입니까? 저장되지 않은 변경사항을 확인하시겠습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.