페이지가 언로드 될 때 JavaScript에서 JSF 백업 빈 기능을 실행하려고합니다. 그것은 IE와 크롬에서 잘 작동하지만 Firefox에서는 그렇지 않습니다.JSF backing bean 함수가 Firefox의 JavaScript에서 호출되지 않지만 IE 및 Chrome에서 정상적으로 작동하는 이유는 무엇입니까?
<h:body onunload="onPageUnload()">
<h:form id="theForm">
<p id="hiddenButton" style="display:none">
<h:commandLink id="hiddenCloseEvent" styleClass="button" action="#{theBean.doHiddenCloseEvent}">
<f:param name="action" value="CLOSE"/>
</h:commandLink>
</p>
...
</form>
</h:body>
언로드 이벤트가 수신 될 때, 따라 자바 스크립트가 실행됩니다
이
은onunload
이벤트가 XHTML에서 트리거를 얻는 방법이다. 하나는 IE 용이고 다른 하나는 Google 크롬 용입니다.
IE 버전 :
function onPageUnload() {
if(detailPage == "false") {
document.getElementById('theForm:hiddenCloseEvent').click();
}
}
Google 크롬 버전 다음 onPageUnload()
이 실행되면
window.onbeforeunload = function(e) {
onPageUnload();
};
, 그것은 숨겨진 입력 버튼 JSF 구성 요소의 클릭 이벤트를 트리거하고 JSF 뒷면 콩 화재, theBean
, 일부 처리를 수행하는 기능이 theBean.doHiddenCloseEvent
입니다. 이제는 JSF 함수가 IE 및 Chrome 버전에서 실행되지만 Firefox에서 트리거되지 않는 상황에서이 문제가 어떻게 해결 될 수 있는지 알 수 있습니까?
내가 코드를 아래와 같이 수정 한
업데이트 : 나는 before
프롬프트 갔지만 after
이 메시지를 표시하지 않는 것을 발견 위의 코드에서
function onPageUnload() {
if(detailPage == "false") {
alert('before');
document.getElementById('theForm:hiddenCloseEvent').click();
alert('after');
}
}
. 이 테스트 케이스는 구성 요소가 웹 브라우저에 표시되지 않는지 여부를 확인합니다.
Firefox의 오류 콘솔에 Java 스크립트 오류 (있는 경우)를 게시 하시겠습니까? –
'alert()'로 테스트했기 때문에 JavaScript 사이트에 오류가 없습니다. 경고 메시지가 표시되지만 클릭 이벤트 만 작동하지 않습니다. – huahsin68