Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Funções com alert

Olá,

Criei o código abaixo e gostaria que fosse exibido o "alert", em seguida um texto apareceria na tela e em seguida outro "alert". Semelhante ao exemplo que o professor Flávio mostrou durante o vídeo, mas não estou conseguindo. Quando abro no navegador ele exibe primeiro os dois "alerts" e só depois ele exibe todo o texto. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas
solução!

O javascript vai executar desta maneira mesmo, a menos que o alert e o document write estejam fora do escopo global, como em um evento ou em uma lista de eventos. Veja:

var messages=0;
var alerts=0;
var lines=0;

function pulalinha(){
    document.write("<br>");
}

function mensagem(mensagemtext,alerttext){
    document.write(mensagemtext);
    messages++;
    console.log("Mensagens "+messages);
    pulalinha();
    lines++;
    console.log("Linhas "+lines);
    alert(alerttext);
    alerts++;
    console.log("Alerts "+alerts);
}

setTimeout(mensagem, 1, "Mensagem 1", "AlertText 1");
setTimeout(mensagem, 1, "Mensagem 2", "AlertText 2");
setTimeout(mensagem, 1, "Mensagem 3", "AlertText 3");

Neste código, criei uma função, que recebe um texto para escrever no documento, e outro para o alert.

Em seguida, utilizei o setTimeout pra "enfileirar" as ações. Desta forma, a cada nova chamada da função, o texto é escrito, uma linha é pulada e em seguida o alert é exibido.

Como no tempo para a função ser executada eu coloquei 1ms, o javascript vai executar a primeira até o alert e enfileirar o restante das ações. Isso pode ser acompanhado no console, com a impressão dos contadores que coloquei para mensagens, linhas e alerts apresentados.

Boa sorte e qualquer dúvida, chama aí.

Show!!!

Esclareceu bastante.

Muito obrigado novamente, David!!