Eu tenho este link na minha página HTML:
<a href = ""
onclick = "setBodyHtml ('new content'); return false; "
> click here </a>
A função setBodyHtml () é definida como:
function setBodyHtml (s)
{ document.body.innerHTML = s;
}
Quando clico no link, o link desaparece e o texto mostrado no navegador muda para "novo conteúdo".
Mas se eu remover o "false" do meu link, clicar no link (aparentemente) não fará nada. Por que é que?
É porque, se eu não retornar falso, o comportamento padrão de clicar no link e exibir sua página de destino acontecerá, não será cancelado. MAS, aqui o href do hiperlink é "" assim que ele volta para a MESMA página atual. Portanto, a página é efetivamente atualizada e aparentemente nada acontece.
Em segundo plano, a função setBodyHtml () ainda é executada. Ele atribui seu argumento a body.innerHTML. Mas como a página é atualizada / recarregada imediatamente, o conteúdo do corpo modificado não fica visível por mais do que alguns milissegundos, talvez, portanto não a vejo.
Este exemplo mostra por que às vezes é útil usar "return false".
Desejo atribuir ALGUM href ao link, para que ele apareça como um link, como texto sublinhado. Mas não quero que o clique no link efetivamente recarregue a página. Eu quero que a navegação padrão = comportamento seja cancelada e quaisquer efeitos colaterais causados pela chamada da minha função para entrar em vigor. Portanto, devo "retornar falso".
O exemplo acima é algo que você experimentaria rapidamente durante o desenvolvimento. Para produção, é mais provável que você atribua um manipulador de cliques em JavaScript e chame preventDefault (). Mas, para uma rápida tentativa, o "retorno falso" acima faz o truque.