탐색 등을 막기 위해 JavaScript 를 사용하여 웹 페이지에서 어떻게?
하지만 '만' 오노 로이드 메시지를 사용하여 표시할 수 없을 것이라고 인터럽트입니다 탐색 (늦었음요 있기 때문에). 그러나 '또' 론베포룬로이드 인터럽트입니다 이동줄에 사용할 수 있습니다.
window.onbeforeunload = function() {
return "Are you sure you want to navigate away?";
}
여기에 나와 달리 다소 코드가 다른 방법으로 이 경우 사용자가 요구하는 경고에는 표시하십시오 not 있지만브라우저에 이로 인해 그는 남기고 싶어한다. 그 대신 프랑드 특성상 리디렉션하지 백됩니다 DOM 은 현재 페이지 (및 카타시안 취소합니까 내비게이션) 이 있지만브라우저에 전에 충분히 해볼만하다고 언로드하려면 메모리에서.
이후 작동하잖아 못하게 막기 위해 페이지를 통해 직접 누전으로 이동줄에 단힌 사용할 수 없습니다. 그러나 프레임 깨기 비활성화하려면 사용할 수 있습니다.
(function () {
var location = window.document.location;
var preventNavigation = function () {
var originalHashValue = location.hash;
window.setTimeout(function () {
location.hash = 'preventNavigation' + ~~ (9999 * Math.random());
location.hash = originalHashValue;
}, 0);
};
window.addEventListener('beforeunload', preventNavigation, false);
window.addEventListener('unload', preventNavigation, false);
})();
내가 됐지 대체하십시오 약간 다른 버전:
var dirty = false;
window.onbeforeunload = function() {
return dirty ? "If you leave this page you will lose your unsaved changes." : null;
}
더러워 내가 다른 곳에 가 true 로 설정하고, 더러운 플래깅 양식 (또는 내가 그렇지 않으면 다른 위치로 이동하기 않도록 할). 따라서 사용자가 쉽게 제어할 수 있는지 여부를 확인 이동줄에 프롬프트합니다 내게 된다.
선택한 텍스트를 통해 오토메이티드 예비형 메시지를 볼 수 있습니다.
현대 addEventListener api 를 사용하여 동일한 더 현대적이고 있지만브라우저에 호환적 방법입니다.
window.addEventListener("beforeunload", function (e) {
var confirmationMessage = "\o/";
e.returnValue = confirmationMessage; // Gecko and Trident
return confirmationMessage; // Gecko and WebKit
});
출처: https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload
이 브라우저는 이미 해당 제안됩니다 오류 메시지가 복제본임을 오류 메시지가 표시됩니다. 구글 크롬, 2 에서 연이어 같은 창의 유사물 오류 메시지가 표시됩니다.
구글 크롬, 다음에표시됩니다 있는 텍스트 사용자 지정 메시지: 이 페이지를 남겨두십시오 " 설정하시겠습니까 "?;;). Firefox 에서 lionbridge 사용자 정의 오류 메시지가 표시되지 않습니다 전혀 (하지만 표시합니다. 대화).
보다 적합한 오류 메시지가 사용할 수 있습니다.
window.onbeforeunload = function() {
return "If you leave this page, you will lose any unsaved changes.";
}
스택 오버플로 또는 스타일. " 시작한 먹어서나 또는 편집 post.";
A 와 # 39 don& 뒤로를 / 앞으로 버튼를 인기를 경우 브라우저, t want 내비게이트할 등을 사용할 수 있습니다.
window.addEventListener('popstate', function() {
if (window.location.origin !== 'http://example.com') {
// Do something if not your domain
} else if (window.location.href === 'http://example.com/sign-in/step-1') {
window.history.go(2); // Skip the already-signed-in pages if the forward button was clicked
} else if (window.location.href === 'http://example.com/sign-in/step-2') {
window.history.go(-2); // Skip the already-signed-in pages if the back button was clicked
} else {
// Let it do its thing
}
});
그렇지 않으면 사용할 수 있지만, 수도, 그렇지 않을 수도 있다. [베포룬로이드] (https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload) 이벤트 메시지 작동합니까 크로스 브라우저, 하며 다시 생각하신거야 docname 내장현 프롬프트합니다.