7
respostas

A página html só é exibida após dar OK no pop-up do prompt ou alert

O html não exibe nada na página enquanto está com o pop-up, aconteceu comigo tanto com o alert em atividade anterior quanto com o prompt no último exercício. Só depois de dar OK no pop-up é que a página html é exibida. Por favor, alguém sabe como resolver isso ?

7 respostas

Amigo(a), bom dia.

Se você tiver algo a ser exibido antes de clicar no botão então posicione a tag script com todo seu conteúdo abaixo da tag body do html. Como o html é um arquivo interpretado pelo browser, ele será lido de cima para baixo até chegar no seu script. Então sua lógica somente será executada depois da página ser renderizada.

Claro que depende da sua lógica, isso pode variar mas é muito avançado... O normal é colocar o script pra baixo e ver se resolve.

Se eu consegui te ajudar, marque a resposta como solucionada, por favor! Abs.

Bom dia Murilo. Obrigada pela resposta. Infelizmente, tentei a tag body mas não solucionou o problema. O meu código está todo dentro de um bloco script/script, de onde eu solicito exibições através do document.write. Antes de exibir o pop-up com o prompt, eu tenho vários document.write que somente estão sendo exibidos depois do OK no pop-up, ou seja, ele não está seguindo a ordem e sim priorizando a exibição do pop-up antes de qualquer coisa.

Que burro. Eu escrevi abaixo da tag body, mas é antes de fechá-la.

Cola o código todo aqui we não resolveu

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


<script>
function pulaLinha() {
    // pulando duas linhas
    document.write("<br><br>");
}

function mostra(frase) {
    document.write(frase);
    pulaLinha();
}

function calculaImc(altura, peso) {

return peso / (altura * altura);

}


var imcFernanda = calculaImc(1.71, 75);
var imcAmiga = calculaImc(1.72, 68);

mostra("Fernanda, o seu IMC é "+ imcFernanda);
mostra("Amiga, o seu IMC é " + imcAmiga);


 //interagindo com o usuário

var nome = prompt("Informe o seu nome");
var alturaInformada = prompt(nome + ", informe sua altura");
var pesoInformado = prompt(nome + ", informe seu peso");

var imcCalculado = calculaImc(alturaInformada, pesoInformado);

mostra(nome + ", o seu IMC é " + imcCalculado);

 </script>
</body>

Oi... aqui funcionou! E não vi nada de errado com seu código.

Na verdade só faltou colocar o body dentro de sua tag html.

Eu salvei seu código como HTML e abri no Firefox. Foi de boa. Aparece já os dois primeiros IMCs e depois vem as perguntas... Como vc colocou 3 prompt seguido do outro, só vai mostrar mesmo os write depois que terminar de digitar seu peso.

Coloque as tags do html, salve e tente abrir em outros navegadores.

No IE funcionou, mas no Chrome continua não funcionando. Será que é alguma configuração?

Pode ser bloqueio do Chrome. Se vc apertar F12 abrirá a aba de Desenvolvedor do browser.

Procure pela aba Console e atualize a página com F5 pra ver a mensagem que aparece... Deve ser apenas proteção do Chrome contra scripts maliciosos. Pois esse comando pode injetar um arquivo js facilmente no seu navegador.