TransWikia.com

Adicionar evento onclick em botão por javascript

Stack Overflow em Português Asked by Rodrigo Müller on February 3, 2021

Estou tentando fazer uma página que, ao ser carregada, crie um botão que ao ser pressionado ele chame a função para volta no histórico:

function goBack(){
window.history.back();
}
function criarBotao(){
    var botao = document.createElement("BUTTON");
    botao.innerHTML = "Voltar";
    document.body.appendChild(botao);
    botao.onclick = goBack();
}
window.onload = criarBotao();

O Problema é que, toda vez que a página é aberta, a função goBack() acontece automaticamente, sem apertar o botão. Alguém poderia me ajudar? Obrigado.

One Answer

O problema é que no momento que você foi adicionar a função goBack ao botao, foi feito de maneira errada, não se pode usar parenteses () após a função como você fez botao.onclick = goBack();, se não a função será invocada.

O certo então seria sem parenteses, como na parte mais abaixo window.onload = criarBotao();, onde o mesmo erro foi cometido.

Logo, o seu código ficaria dessa forma:

function goBack(){
    window.history.back();
}
function criarBotao(){
    var botao = document.createElement("BUTTON");
    botao.innerHTML = "Voltar";
    document.body.appendChild(botao);
    botao.onclick = goBack;
}
window.onload = criarBotao;

Answered by Lucas Módolo on February 3, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP