4
respostas

Problema com exibição de textos na tela

No vídeo, a cada vez que o usuário erra, é exibido uma mensagem. Diferente do meu código, que está exibindo todas as mensagens de uma vez, depois da última pergunta do prompt. O que há de errado?

<meta charset="UTF-8">
<script>

    function pularLinha()
    {
        document.write("<br>");
        document.write("<br>");
    }
    function mostra(frase)
    {
        document.write(frase);
        pularLinha();
    }
    var numeroPensado = Math.round(Math.random() * 10);
    var tentativas = 1;
    while(tentativas <= 3)
    {
        var chute = parseInt(prompt("Tente acerta o numero pensado"));
        if(chute == numeroPensado)
        {
            mostra("Voçê ACERTOU!");
            break;
        }
        else
        {
            mostra("Voçê ERROU!");
        }
        tentativas++;
    }
    </script>
4 respostas

Olá gustavo,

qual navegador você está usando? O código parece certinho, na verdade como ele está imprimindo tudo no final é por conta do navegador que está sendo usado, que chuto que deve ser o Chrome pelo comportamento.

Isso está acontecendo na verdade por conta do navegador e o comportamento do document.write em cada um deles. No Chrome, o document.write não imprime na hora em que é executado, apenas no final da execução do script. Já em outros navegadores, como o Firefox, ele executará no momento da chamada do document.write como ocorre na aula.

Teste em um firefox e veja se o comportamento se aproxima do que você espera.

Bom no meu eu testei em outros navegadores e ele só aparece o document.write depois de usada as 3 tentativas, logo ele imprime os 3 de uma vez. Testei em Chrome, IE e Opera.

Olá Marcelo,

testa no firefox, geralmente ele é o navegador que imprime a mensagem no momento da execução do document.write

Oi gustavo conseguiu solucionar essa dúvida, testou no firefox ? , nas versões antigas do Chrome ele renderizava o document.write enquanto o script estivesse em execução, mas atualmente ele só renderiza ao final. No entanto no firefox atual isso não acontece.