我有JSF页面我希望在用户尝试关闭时检测浏览器事件
Tab或所有浏览器阻止他,如果他想离开此页面或留下 我需要在后端通过调用java方法 java脚本 我尝试这样做但是页面上的服务器监听器看不到来自js的动作 所以我需要帮助才能取得这样的成功
window.onbeforeunload = function (event) {
console.log(" Test Event Console .")
var docComponent = AdfPage.PAGE.findComponentByAbsoluteId('d1');
console.log(" value component = " + docComponent);
var dialogText = ' browser Is Closed !.. ';
console.log(dialogText);
var x = AdfCustomEvent.queue(docComponent, "test",{"test":"so"},false);
console.log("test " + x);
var y = 0;
event.returnValue = dialogText;
return x;
};
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE html>
<f:view xmlns:f="http://java.sun.com/jsf/core" xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
<af:document title="testBrowserChrome.jsf" id="d1" clientComponent="true" onunload="onbeforeunload">
<af:form id="f1">
<af:resource type="javascript" source="resources/js/BrowserEventClose.js"/>
<af:serverListener type="test" method="#{viewScope.ServerTest.testServerListener}"/>
</af:form>
</af:document>
</f:view>
答案 0 :(得分:0)
我建议您创建一个具有该操作的按钮,并使用以下代码模仿按钮触发器,因为 theButton 是该按钮的ID。
var adfButton = AdfPage.PAGE.findComponentByAbsoluteId("theButton");
AdfActionEvent.queue(adfButton , true /*Immediate*/);