2009-12-18 2 views
1

바스케이스 페이지를 이동할 때 저장되지 않은 변경 사항을 사용자에게 경고해야하는 이벤트가 있습니다. 서버에서 오류가 발생하는 경우 Seams 리디렉션 필터를 사용하여 error.xhtml로 이동하지만 확인 대화 상자가 표시되며 사용자가 페이지 리디렉션을 취소하고 깨진 편집 페이지에 남아있게합니다.Javascript confirmExit 리디렉션이 error.seam이되지 않는 한

아래 코드를 변경하여 내가 지시하는 곳을 벗어날 수 있습니까? 나는 window.location을 시도했지만 여전히 Event 페이지를 말하고있다. window.redirect와 같은 것이 있습니까? 플래그가 true의 경우

<script language="JavaScript" > 
    window.onbeforeunload = confirmExit; 
    function confirmExit(){ 
     if(isEventModified()){return "The Event has unsaved changes!";} 
    } 
</script> 

답변

1

당신은 일반적으로

warn_on_exit = true; 

같은 글로벌 플래그를 설정합니다, 당신이 확인 메시지가 팝업 원인, 당신의 경고 문자열을 반환합니다. 거짓이면 null을 반환합니다.

그러면 오류 페이지는 플래그를 false으로 설정하는 일부 JavaScript를 방출해야합니다.

+0

흠 그래, 내가 할 수있는 것 같아. 그냥 보일러 플레이트 코드가 많을거야. – stickboy144

+0

글쎄, 내가 볼 수있는 한 다른 방법은 없다. ... –

+0

사실 나는 이것을 할 수 있다고 생각하지 않는다. 오류 페이지로의 리다이렉트 (redirect)는 예외가 던져 질 때마다 Seam 내부에서 이루어지며 거기에서 자바 스크립트 변수를 변경할 수 없습니다. 윈도우 이벤트가 이전에로드되었습니다. 페이지를 언로드하기 전에 리다이렉트를 설정해야합니다. 아니면 우리가 접근 할 수없는 것입니까? – stickboy144

관련 문제