Как изменить переменную, чтобы обойти встроенный таймер JavaScript window.onload в Chrome

Я пытался использовать Tampermonkey 4.5.5663 в Chrome версии 63.0.3239.132 (Официальная сборка) (64-разрядная версия), чтобы обойти следующий JavaScript в разделе HEAD на странице веб-сайта, который не позволяет переходить на следующую страницу, пока таймер не достигнет нуль:

<!-- COUNTDOWN TIMER --> 
<script language=JavaScript type=text/javascript> 
<!-- 
 var sec=96; 
 function countDown() {
     sec--;
     time=sec+' sec '; 
     if (document.getElementById) {
         document.getElementById('Timer').innerHTML=time; 
     } 
     SD = window.setTimeout('countDown();', 1000); 
     if ( sec == 00) {
         sec = 00; window.clearTimeout(SD); 
     }
 } 
 window.onload = countDown; 
 // --> 
 </script>

В Tampermonkey я попробовал:

countDown = null; 

и помещаем // перед функциональными строками кода шаблона Tampermonkey. Я в порядке с использованием Tampermonkey, и я полностью открыт для других решений. Этот встроенный таймер веб-страницы - огромная трата времени для меня, и я хочу победить его и двигаться в своем собственном темпе. Любая помощь будет принята с благодарностью... Rexie

1 ответ

Если скрипт tampermonkey запускается после скрипта со страницы, простой sec = 1; буду работать. Установка его в 0 не будет работать, и он будет считать негативы бесконечно.

Однако, если ваш сценарий выполняется перед сценарием со страницы, вы можете попробовать этот немного уродливый подход:

const oldTimeout = window.setTimeout;
window.setTimeout = function(cb, time) {
    if (cb === 'countDown();') {
        time = 0;
    }
    return oldTimeout(cb, time);
}
Другие вопросы по тегам