setTimeout не работает, если щелкнуть правой кнопкой мыши и показать контекстное меню - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь написать функцию setTimeout в javascript и получаю некоторые проблемы.Когда я использую IE, я щелкаю правой кнопкой мыши и показываю контекстное меню, перестает работать setTimeout.

Вот мой код.

var t = 30000;
function myTimer(){
    if(t <=0 ){
        console.log('STOP');
    }else{
        setTimeout(myTimer, 1000);
        console.log(t/1000);    
    }
    t-=1000;
};

У кого-нибудь есть эта проблема?Спасибо.

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

Я провел тестирование с вашим примером кода и смог создать проблему.

Вот результат тестирования.

enter image description here

На основании результатов моего тестирования я обнаружил, что проблема не связана с setTimeout .Я также протестировал этот пример кода JS Coundown , и он выдает ту же проблему.

Проблема заключается в том, что IE приостанавливает выполнение кода JS, пока отображается контекстное меню.

Похоже на дизайн, и я не получил никакого решения для этого.

Чтобы обойти эту проблему, можно попытаться отключить щелчок правой кнопкой мыши (только для IE) с помощью JavaScript, чтобы избежать этой проблемы.

0 голосов
/ 10 мая 2019

вы пропустили вызов функции timer.попробуй вот так.

var t = 30000;
function myTimer(){
    if(t <=0 ){
        console.log('STOP');
    }else{
        setTimeout(myTimer, 1000);
        console.log(t/1000);    
    }
    t-=1000;
};

myTimer()
...