Abre una nueva pestaña / ventana y cierra la vieja

Aquí está mi código actual, pero elcloseWindow La función se ejecuta antes de que se abra la nueva pestaña.

    $(document.body).append('<iframe width="500px" height="500px" id="pcl_frame" style="display:none;"></iframe>');
    $('#pcl_frame').attr('src', data['url']);
    $('#pcl_frame').load(function() {
        // Load page
        document.getElementById('pcl_frame').contentWindow.CreateCBTPlayer(data['code'],"new");

        // Close current windows after the above tab/window opens
        closeWindow(); // has a 2 second delay
}); 

¿Hay alguna manera de esperar a que el comando anterior abra primero la nueva pestaña / ventana, luego cierre la pestaña actual que se usó para abrir la nueva ventana.

Además no puedo cambiar elCreateCBTPlayer función.

Renuncia

Sé que lo que estoy haciendo no es muy lógico, pero se debe hacer para sortear un sistema antiguo con el que tengo que trabajar.

Respuestas a la pregunta(2)

Su respuesta a la pregunta