$ (window) .on ('load', function .... не запускается на другом сервере с тем же браузером - PullRequest
0 голосов
/ 03 октября 2018

У меня есть простой код javascript, который перехватывает кнопку «назад» с помощью API истории, а затем выдает всплывающее окно, как видно по всей сети.Работает в Chrome при просмотре моих страниц MVC с localhost.Когда я публикуюсь на тестовом сервере, он не работает.

if (window.history && history.pushState) {
            $(window).on('load', function () {
                history.pushState(null, null, null);
                $(window).on('popstate', function () {
                    var stayOnPage = confirm("You clicked the back button");
                    if (!stayOnPage) {
                        history.pushState(null, null, null);
                    } else {
                        history.back();
                    }
                });
            });
        }

Чего НЕ происходит на тестовом сервере, так это того, что он никогда не фиксирует событие «загрузки» окна, когда я меняю страницы,Я знаю это, помещая операторы «отладчика» на протяжении всего этого блока.На localhost он захватывает событие, затем вызывает history.pushState () и может подключить обработчик события «popstate».Затем, когда я нажимаю кнопку «Назад», отображается всплывающее окно подтверждения.
Но на тестовом сервере он никогда не вызывает history.pushState (), поскольку никогда не фиксирует событие загрузки.Я использую один и тот же браузер Chrome для обоих сайтов, но работает только localhost.Не знаю, почему это изменится.И тестовый сервер не меняет происхождение вызовов.Это все MVC с корневым URL в формате: http://FullyQualifiedMachineName:84/User/UserDetails (имя компьютера с полностью определенным доменом и номером порта)

...