Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

509
Visualizações
¿Cómo omitir el temporizador de JavaScript con Tampermonkey?

Estoy tratando de omitir un temporizador de cuenta regresiva de 60 segundos usando Tampermonkey. Este es el JavaScript de la fuente de la página:

 var sec = 60, sInt, s = 'Please wait %s before downloading.'; function countDown() { var f = $('#download'); if (sec < 0) { d.html('<div style="margin: 10px auto" class="center"><form action="" method="post">\ <input type="hidden" name="hash" value="REMOVED">\ <div id="REMOVED" style="width:450px;margin:5px auto"></div> \ <input type="submit" class="submit" value="Get download link" name="download"> \ </form></div>'); hcaptcha.render('REMOVED', { 'sitekey': 'REMOVED' }); clearInterval(sInt); return; } d.html(s.replace('%s', sec +' second'+ (sec != 1 ? 's' : ''))); sec--; } $(function() { sInt = setInterval(countDown, 1150); });

(algunos elementos fueron sustituidos con 'ELIMINAR' pero no deberían tener efecto, no creo)

Hasta ahora he intentado lo siguiente pero no funcionó:

 // ==/UserScript== (function() { 'use strict'; var sec = 0; })();

¿Alguna sugerencia para hacer que esto funcione? Creo que cualquiera de estos dos métodos funcionaría, pero no estoy seguro de cómo hacerlo:

  1. cambie el var sec a 0, o
  2. cambie los milisegundos de cuenta regresiva de 1150 a 0.

Entonces, ¿se puede hacer cualquiera de los dos? Si es así, ¿cómo puedes hacerlo?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Problema

El problema probable es que la declaración de sec esté en un ámbito diferente al declarado en el sec del sitio web. Como resultado, no está configurando el valor en el mismo sec .

Solución

sec mutante

Deberá averiguar si es posible realizar manipulaciones en el mismo ámbito en el que el sitio web declara sec . Esto solo es realmente posible si el autor del sitio web ha declarado sec en el ámbito global. Si lo han declarado en el alcance global haciendo window.sec = -1; Deberia trabajar. De lo contrario, es posible que deba manipular el temporizador.

Manipulación de temporizadores

La manipulación de temporizadores puede ser una gran tarea. Eche un vistazo a sinonjs/fake-timers para ver qué complejidad podría estar involucrada. No creo que una solución tan compleja sea necesaria para lo que quiere aquí, así que simplemente manipulemos el temporizador secuestándolo. Lo siguiente secuestrará setInterval y hará que los intervalos se ejecuten (lo más cerca posible) de inmediato. Se debe tener cuidado al usar esto porque si hay un intervalo que nunca se borra y realiza tareas intensivas de memoria, entonces podría bloquear su navegador/computadora.

 const hijackedInterval = window.setInterval; window.setInterval = (fn) => { return hijackedInterval(fn, 0); };

A continuación se muestra una demostración. Hay dos expresiones de función invocadas inmediatamente para demostrar diferentes ámbitos. El primero realiza el secuestro de setInterval . El segundo es un contador que se incrementa cada segundo. Una vez que hayan pasado 10 segundos DONE! debe registrarse en la consola. Sin embargo, como hemos secuestrado setInterval , el registro se produce de inmediato.

 (() => { const hijackedInterval = window.setInterval; window.setInterval = (fn) => { return hijackedInterval(fn, 0); }; })(); (() => { let counter = 0; let intervalId; intervalId = setInterval(() => { if (counter === 10) { clearInterval(intervalId); console.log('DONE!'); return; } else { counter++; } }, 1000); })();

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda