Estoy tratando de cambiar el tamaño del iframe haciendo clic en el botón usando el detector de eventos de clic. Pero el iframe automáticamente ejecuta la función y ni siquiera he hecho clic en el botón...
Alguien dijo que esto es un duplicado de ¿Cómo pasar argumentos a la función de escucha addEventListener? pero no veo donde esta relacionado esto???
const btn = document.querySelector('button'); const iframe = document.querySelector('iframe'); function change(w) { iframe.style.width = `${w}px`; } btn.addEventListener('click', change(150));
iframe { width: 300px; height: 300px; background-color: blue; }
<button>Change</button> <iframe src=""></iframe>
cambie su función de escucha de eventos así
btn.addEventListener('click', () => change(150));
O
btn.addEventListener('click', function() { change(150) });
addEventListener
espera una definición de función y no una llamada de función como segundo argumento.
Para obtener más información, lea: https://www.w3schools.com/js/js_htmldom_eventlistener.asp