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

98
Visualizações
Using Javascript, refresh a page every 30 seconds UNLESS a phrase appears

Existing code

I use the following code in ViolentMonkey (or GreaseKit or TamperMonkey) to refresh a page every 30 seconds:

setTimeout(function(){ location.reload(); }, 30*1000);

Can I make it stop?

This has been working fine for many years. But now, I want my code to NOT refresh the page if the following phrase is present: Important shizzle

(The reason I don't want it to refresh under this condition is because then I will no longer be able to see what was written.)

I am unenlightened

I know almost no Javascript. I've watched tutorials on YouTube, to try and learn the basics. I often google small questions and find answers on Stackoverflow (thanks all) - but I'm still very slow


Strategy thoughts

  1. Search for the phrase Important shizzle - if it exists then end the script.
  2. Then I'd just have my existing code: setTimeout(function(){ location.reload(); }, 30*1000);

Alas I cannot find an elegant Javascript command to abruptly end the script.

Would this work?

if( !document.body.textContent.includes("Important shizzle")) location.reload();

The problem is that the above doesn't do it every 30 seconds, it just does it once

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

0

You can read the .innerText property of the body, then use String#includes to see if your phrase is present.

If it is present you can return out of the function to end the script.

Something like this:

const timeout = setTimeout(function () {
  if (document.body.innerText.includes('Important shizzle')) return;
  location.reload();
}, 30 * 1000);
about 4 years ago · Juan Pablo Isaza Relatório

0

You can do it this way :

setInterval(reload, 30*1000);

function reload() {
    if ( isReloadOK() ) location.reload();
}

function isReloadOK(){
    if (document.body.textContent.includes("Important shizzle")) return false;
    return true;
}
about 4 years ago · Juan Pablo Isaza Relatório

0

You can have the timeout and you can ADD an interval and I will use the example from what you have shown already.. the most important part is clearTimeout

var timeout=setTimeout(function(){ location.reload(); }, 30*1000);
var interval=setInterval(()=>{
  let condition = document.body.textContent.includes("Important shizzle");
  if(condition){clearTimeout(timeout); clearInterval(interval)}
},0);
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