Закрытие события браузера в ADF - PullRequest
0 голосов
/ 31 мая 2018

У меня есть страница JSF, и я хочу обнаружить событие закрытия браузера, когда пользователь пытается закрыть

Вкладка Или все браузеры останавливают его, и если он хочет покинуть эту страницу или остаться, и мне нужно вызвать метод 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>

1 Ответ

0 голосов
/ 31 мая 2018

Я бы предложил вам создать кнопку с этим действием и имитировать триггер кнопки, используя следующий код, учитывая, что theButton является идентификатором этой кнопки.

var adfButton = AdfPage.PAGE.findComponentByAbsoluteId("theButton");
AdfActionEvent.queue(adfButton , true /*Immediate*/); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...