windows.onload не вызывает функцию при доступе к новой странице - PullRequest
0 голосов
/ 06 ноября 2019

Сценарий: на главной странице я установил таймер, который отлично работает при загрузке первой страницы. когда я переключаюсь на другую страницу и таймер исчезает. Используя отладчик, я заметил, что при смене страницы startTimer () не вызывается. Обратите внимание, что весь код находится в методе $ (document) .ready. Код отлично работает на локальном хосте, но только когда приложение развернуто, возникает эта проблема.

 function startTimer(duration) {

    var timer = duration;

    var myInterval = setInterval(

        function () {

            try {
                //Will crash beacause IsDirector does not exist
                if (localStorage.getItem("IsDirector") == 1 && TTL == "") {
                    return;
                }

            }

            catch (e) {
                console.log(e);

            }

            try {
                var minutes = parseInt(timer / 60, 10);

                var seconds = parseInt(timer % 60, 10);

                var display = document.getElementById('LblTimeLeft');

                minutes = minutes < 10 ? "0" + minutes : minutes;

                seconds = seconds < 10 ? "0" + seconds : seconds;

                display.textContent = minutes + ":" + seconds;

                document.getElementById("TimeLefthidden").value = timer;

                localStorage.setItem("TimeLeft", timer);

            }
            catch (e) {
                console.log(e);
            }

            if (--timer < 0) {
                //logout user if timeleft is zero
                //removing all session from client browser
                localStorage.clear();

                btnlogout_onclick();

                myStopFunction();
            }


        }, 1000);



};

window.onload = function () {

    startTimer(TTL);
};

Интересное открытие : когда я обновляю страницу, таймер не отображается (фактическая ошибка), но если я открываю консоль разработчика и устанавливаю некоторые точки останова только для проверки некоторых значений изакройте консоль разработчика, появится таймер !!!

...