2
respostas

tem como imprimir no browser sem "alert"?

Olá,

Enquanto assistia a aula tentava incorporar o que já aprendi com os exercícios e aulas anteriores e fui "amplianda" meu código, pfv, não estranhem ele :S

Minha dúvida era sobre a não impressão no browser, vi q o Chrome e Brave não imprimem na tela, e o FireFox imprime... Para compensar isso eu coloquei "alert" junto do "mostra" para que ele possa ser mais interativo com o usuário. Até que ficou legal, pq acabou criando um "histórico" no browser. Mas ficou ruim para usuários do FireFox, pois o "alert" não obrigatório é um tanto quanto "chato".

Realmente não tem como resolver isso? Só quando avançarmos mais e aprendermos novas maneiras de interagir com o usuário (sem o uso do "prompt")?


    <meta charset="UTF-8">

    <script>

        function pulaLinha(){

            document.write("<br><br><br>");
        }

        function mostra(frase){

            document.write(frase);
            pulaLinha();

        }

        var n = parseInt(prompt("Quer tentar adivinhar um número meu com quantas casas decimais?"));
        while (isNaN(n)){
            var n = parseInt(prompt("Quer tentar adivinhar um número meu com quantas casas decimais?"));
        }

          function sorteia(n){
            return Math.round(Math.random()*((n-1)*10));
        }

        var numeroPensado = sorteia(n);

        var tentativa = 0;

        var chance = parseInt(prompt("Quantas chances você deseja para adivinhar?"));
        while (isNaN(chance)){
            var chance = parseInt(prompt("Quantas chances você deseja para adivinhar?"));
        }

        while (tentativa < chance){

            var chute = parseInt(prompt("Digite seu chute:"));
            while (isNaN(chute)){
                var chute = parseInt(prompt("Digite seu chute:"));
            }

            if(chute == numeroPensado){
                mostra("Uau! Você acertou, pois pensei no " + numeroPensado);
                alert("Uau! Você acertou, pois pensei no " + numeroPensado);
                break;
            } else {
                if(chute < numeroPensado){
                    mostra("Você errou. Seu chute " + chute + " é menor que o número que pensei.");
                    alert("Você errou. Seu chute " + chute + " é menor que o número que pensei.");
                    tentativa++;
                    if(tentativa==chance){
                        mostra("Eu pensei no número " + numeroPensado);
                    }
                } else {
                        mostra("Você errou. Seu chute " + chute + " é maior que o número que pensei.");
                        alert("Você errou. Seu chute " + chute + " é maior que o número que pensei.");
                        tentativa++
                        if(tentativa==chance){
                            mostra("Eu pensei no número " + numeroPensado);
                        }
            }
        }
    }
</script>
2 respostas

Olá Thiago, tudo bem?

Eu testei com o Chrome e Firefox e ambos imprimiram normalmente, creio que o document.write() deveria funcionar direito em todos navegadores, realmente temos o ponto de que o firefox da um aviso para parar de mostrar os alertas, por incomodar um pouco

A grande questão é que dentro do mundo javascript trabalhando com o navegador iremos querer interagir com formulários ao invés de alertas, então o mais comum é termos um campo de <input type="text"/> onde o usuário digita o que quer fazer, e você através do javascript pega o valor desse campo e faz as considerações, teriamos algo como:

<input type="text" class="chute"/>
<button class="botao"> Chutar </button>

<script>
    var botao = document.querySelector(".botao");
    var input = document.querySelector(".chute");
    var n = Math.round(Math.random() * 100)

    function validaChute() {
            if(input.value == n )
                input.value = "Você acertou";
            else
                input.value = "Você errou";
    }

    botao.onclick = validaChute;
</script>

Claro que é um exemplo bem simples, daria para chegar no mesmo resultado, poderíamos ter vários campos para definir a quantidade de casas decimais, e inclusive bloquear o botão de chutar após a quantidade

Um curso que vai trabalhar com essa interação é o de javascript: programando na linguagem da web

Mas o ponto é justamente esse, manipular elementos do HTML para interagir ao invés de alertas :)

Conseguiu Compreender?

Abraços e Bons Estudos!

Obrigado Geovani!

Realmente tenho muito a conhecer sobre a biblioteca JavaScript. Tenho certeza agora q tem mais opções conforme aprendo!!

Não entendi direito como e pq, mas já estou fuçando essas instruções q não conhecia. ;)

Obrigado!