ejecución de evento dentro de una nueva ventana

Tengo una duda con la que llevo ya un rato peleandome un buen rato y me gustaría que me ayudarais, la función es la siguiente:

function abrirVentana() {         var nuevaVentana = window.open();         var cursos = ["XX", "XX", "XX", "XX", "XX", "XX"];         for (let i = 0; i < cursos.length; i++) {             var div = document.createElement("div");             nuevaVentana.document.body.appendChild(div);             var input = document.createElement("input");             div.appendChild(input);             input.type = "button";             input.value = cursos[i];             input.addEventListener("click", function () {                 nuevaVentana.alert("Ha presionado en "+this.value);             });         }     } 

Lo que estoy intentando es que al hacer click en cualquiera de los botones que están dentro de la nueva ventana me salte un alert dentro de la misma mostrando el value del boton correspondiente pero por alguna razón no salta, ¿que podría ser? he probado a poner el event.preventDefault(); justo antes de terminar la función y entonces si me funciona por alguna razón, y no entiendo exactamente el porque, pido ayuda. Gracias de antemano!