Удаление вызова window.onbeforeunload, потому что он не поддерживает Chrome 80, вместо этого я хочу использовать fetch и sendBeacon - PullRequest
0 голосов
/ 02 марта 2020

Мы используем window.onbeforeunload в основном, если пользователь выполняет поиск текста на странице в окне поиска, который больше не сохраняется. Поэтому мы хотим использовать fetch или sendBeacon для одного и того же для всех браузеров, кроме IE вместо window.onbeforeunload.

Фрагмент кода для поиска текста в окне поиска:

<script type="text/javascript" charset="utf-8">

    var unloadCatcher = function() {
            var dateObjAjax = new Date();
            var timestamp = dateObjAjax.getTime();
            var sortColumnIndex = $('#example').dataTable().fnSettings().aaSorting[0][0];
            var pageType = "EPPatientList";
            var paginationSize = $("#example_length select option:selected").prop('value');
            var sortDirection = $('#example').dataTable().fnSettings().aaSorting[0][1];
            var searchText = "";
            if ($('#search_input').is(':visible')) {
                searchText = $('#search_input').val();
                $("#hiddenSearchText").val(searchText);
            }
            else {
                $("#hiddenSearchText").val("");
            }

            $.ajax({
                url: "<%=userPreference%>&sortColumnIndex=" + sortColumnIndex
                    + "&pageType=" + pageType
                    + "&paginationSize=" + paginationSize
                    + "&sortDirection=" + sortDirection
                    + "&time="+timestamp,
                type: "post",
                data: $("#hiddenSearchForm").serialize(),
                cache: false,
                async: false,
                success: function(data){
                }
            });

            var otable = $('#example').DataTable();
            var pageSize = otable.page.info().length;

            var expdate = new Date();

            expdate.setTime(expdate.getTime() + (60 * 60 * 1000 * 24 * 365 * 20));
            $.cookie('SJM_PT_'+userLogonCookieName+'_PageSize',pageSize,{ expires: expdate });
        }

        window.onbeforeunload = unloadCatcher;

</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...