2009-08-10 4 views
0

몇 가지 정리 작업을 수행 할 때 onunload 이벤트를 실행하고 싶습니다. 다른 웹 페이지에 여러 링크가 표시되는 여러 탭 (Navbar)이 있습니다. 내 페이지가 다른 페이지에있을 때도 내 문제입니다. 다른 jsp의 태그에있는 함수가 실행됩니다. 이것을 해소하는 데 도움을주십시오. 사용자가 해당 페이지에서 브라우저를 닫을 때 언로드 기능을 호출해야합니다.JavaScript + onunload 이벤트

답변

0

언로드 기능이 전역 범위에서 생성 된 것 같습니다. 행동을 취하려는 페이지에만 해당 기능을 배치하십시오.

+0

친애하는 Elzo, 문제는 chat.jsp의 본문에 함수가 선언되었으므로 탭이있다는 것이다. 편집, 홈,보기, 채팅, nw와 같은 다른 웹 페이지에 대한 링크 편집 페이지의 일부 텍스트를 편집하는 경우 chat.jsp에 선언 된 내 언로드 fuction이 호출 되어도 사용자가 채팅 할 때 브라우저를 닫을 때 필요합니다. .jsp 이것은 다른 탭으로 전환하는 동안에는 호출하지 말아야합니다. – pradeep

3

onunload 이벤트가 작동하는 방법을 잘 모르겠습니다 ... onunload 이벤트를 사용하여 발견 한 문제는 페이지가 언로드 된 후에 발생하는 것입니다. 즉, 페이지가 언로드되었으므로 더 이상 JavaScript를 실행할 수 없습니다.

onbeforeunload 이벤트를 사용해야합니다. 이 이벤트는이 이벤트를 처리하는 함수에서 아무 것도 반환하지 않으면 작업을 계속할 것인지 묻는 팝업이 표시되므로 약간 특이합니다. 그래서, 귀하의 경우에는 귀하의 함수가 아무것도 반환하지 않는지 확인하십시오. onbeforeunload 이벤트에 대해 알아야 할 다른 사항은 현재로서는 Opera가 Safari, FireFox 및 Internet Explorer를 지원하지 않는다는 것입니다.

페이지가 언로드 될 때마다 onbeforeunload 및 onunload 이벤트가 모두 실행됩니다. 페이지의 컨트롤이 서버 코드에 페이지를 제출하면 페이지가 언로드되고 JavaScript가 실행됩니다.

페이지의 컨트롤이 서버에 컨트롤을 제출할 때 JavaScript가 실행되지 않도록하려면 코드 실행 여부를 확인하는 무언가를 구현해야합니다.

이것은 간단합니다. 페이지에 JavaScript 부울을 추가하고이 부울을 true로 설정하는 함수를 추가하십시오. 페이지를 제출하기 전에 서버 코드에 다시 게시되는 모든 요소가이 부울을 true로 설정해야합니다. onbeforeunload 이벤트에서이 부울 값을 확인하여 정리 코드가 실행되어야하는지 확인하십시오. 이 도움이

희망,

-Frinny

0

당신은 프레임 셋 페이지가? 그리고 프레임 셋에서 벗어날 때 통보를 받고 싶습니까? 프레임 셋에 onbeforeunload를 추가하십시오. 내가 무슨 뜻인지는 알지 못한다. 그러나 브라우저에서 안전하게 언로드 할 때 XHR을 보낼 수는 없다.