2
respostas

Iniciar o script por um botão?

Excelente aula, antes de mais nada! Queria fazer o seguinte: modifiquei o programa da última aula mas queria que ele somente iniciasse se o usuário clicar num botão, é possível isso? Com seria?

2 respostas

Acredito que a forma de fazer isso seria adicionando um event handler, por exemplo:

// define o handler
function doc_keyUp(e) {

    // isso testaria se foi pressionado a tecla 40 e a tecla CTRL ao mesmo tempo
    if (e.ctrlKey && e.keyCode == 40) {
        //chama a função para fazer alguma coisa
        pauseSound();
    }
}
// registra o handler 
document.addEventListener('keyup', doc_keyUp, false);

Aqui tem uma lista de keycodes para Javascript. Espero ter ajudado.

Opa, obrigado pela resposta, eu usar isso em outro lugar, mas o que eu queria agora é esse caso:

<!DOCTYPE html>

<head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>MAIOR NÚMERO</title>
        <meta name="description" content="Programa que retorna o maior número, GTI, 2018">

        <link rel="stylesheet" href="main.css">
    </head>
<body>
    <h1>Exibir o Número Maior</h1>

    <p>
        Este programa é uma atividade da disciplina de Engenharia de Software,
        da Fatec Campinas, curso de GTI, 2018.
    </p>


    <script language="JavaScript" type="text/javascript">

    function Onlynumbers(e) {
    var tecla=new Number();
    if(window.event) {
        tecla = e.keyCode;
    }
    else if(e.which) {
        tecla = e.which;
    }
    else {
        return true;
    }
        if((tecla >= "97") && (tecla <= "122")){
        return false;
        }
    }

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

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

    var numeros=[];

    var quantidade = parseInt(prompt("Quantos números você vai adicionar?"));

    while(isNaN(quantidade)){
        alert("Digite apenas números inteiros.")
        quantidade = parseInt(prompt("Quantos números você vai adicionar?\n ou 0 para encerrar"));
    }

    var contador = 1;

    var maior = 0;

    while(contador <= quantidade) {

        var numero = parseInt(prompt("Digite o número " + contador));

        while(isNaN(numero)){
            alert("Digite apenas números inteiros.")
            numero = parseInt(prompt("Digite o número " + contador));
        }

        var existe = false;

        for(var posicao = 0; posicao < numeros.length; posicao++) {

            if(numeros[posicao] == numero) {
                alert("Número repetido, escolha outro, diferente de " + (numero));
                existe = true;
                break;

            }

        }

        if(existe == false) {

            numeros.push(numero);
            contador++;
        }

    }
    mostra("Números digitados: " + (numeros));

    for (var i = 0; i < numeros.length; i++) {
        if ( numeros[i] > maior ) {
        maior = numeros[i];
        }
    }

    pulaLinha();
    pulaLinha();
    mostra("Maior número digitado: " + (maior));

    console.log(numeros);

    </script>
</body>

Taí o código todo, no caso eu queria evitar que assim que abre a página o script já comece a rodar...tipo eu colocaria uma explicação e um executar, daí começaria o script, eu posso colocar tudo num botão...?