그래서 직장을위한 웹 포털을 만들고 있습니다. 보스는 페이지에서 다른 곳으로 이동하면 사용자를 로그 아웃하기를 원합니다. 이 자습서를 찾았습니다. http://kbeezie.com/cross-browser-exit-pop/자리 비움 스크립트가 작동하지 않음
jquery 예제를 사용하여 몇 개의 페이지에 삽입하여 테스트 해 보았습니다. 개발을 위해 asp.net/C#을 사용하고 있습니다. 다음 페이지의 기본 레이아웃 내 스크립트를 포함입니다 :
<%@ Page ... %>
<asp:Content .. > </asp:Content>
<asp:Content .. >
//my navigate away function
<script type="text/javascript">
function PopIt() {
return "Are you sure you want to leave?";
}
$(document).ready(function() {
window.onbeforeunload = PopIt;
$("a").click(function() { window.onbeforeunload = null; });
});
</script>
<div>
<table></table>
//other stuff
</div>
</asp:Content>
나는 우리의 웹 포털의 링크를 클릭하면 우리가 내부 링크를 클릭하고 있기 때문에 팝업하지 않는 스크립트가 작동 멀리 이동 . 그러나, 내가 사이트를 계속 돌아 다니면 2 ~ 3 번의 클릭 후 결국 내부 링크를 클릭하면 떠날 것인지를 묻습니다. 아무도 왜 이것이 일어나고 있는지 말해 줄 수 있습니까?
편집 : 모든 페이지에서 jquery가 참조되므로 문제는되지 않습니다.
편집 : 다음은 작동하는 JSFiddle입니다. 링크를 클릭하면 아무 일도 일어나지 않지만 탐색 할 때 아무 메시지가 나타나지 않습니다.
내가 왜 당신이 설명하는 이슈를 얻고 있는지 확신 할 수는 없지만 포털을 떠나는 당신의 코드가 어떻게 반응하는지는 알 수 없습니다. * 모든 링크가 로컬인지 여부에 관계없이 onbeforeunload 핸들러를 제거합니다. – Archer
Google 웹 사이트에는 외부 웹 사이트로 연결되는 링크가 없으므로이 솔루션은 모든 것을 포착하기 때문에 작동합니다 (Google로 이동, 브라우저 닫기 등) – ToastyMallows
언로드를 트리거하는 링크는 마스터 페이지 컨텐츠 또는 다른 페이지 렌더링에서 렌더링되는 링크가 가정되지 않을 때 결국 발생합니다. – Casey