¿Cómo evito que Google Chrome bloquee mi ventana emergente?

En mi sitio web hay un botón que solo se usa para llamar a una función que llamawindow.open, sin embargo, recientemente se necesitó un ajuste para hacer una verificación del lado del servidor antes de abrir la ventana emergente.

Desde que se agregó el código que hace la llamada AJAX, los navegadores bloquean la ventana emergente, que se abre en elsuccess devolución de llamada de la llamada AJAX. Leí que los navegadores pueden bloquear la ventana emergente si no es invocada por un evento de clic del usuario, así que intenté configurar la solicitud AJAX paraasync: false, que resolvió el problema en Firefox, pero Google Chrome sigue bloqueando mi ventana emergente. ¿Hay alguna forma de evitar esto?

Podría mover la verificación del lado del servidor a la página que se abre en la ventana emergente, pero me gustaría hacerlo antes de abrir la ventana emergente, si es posible.

Código:

<a id="attackButton" href="#">Attack Base!</a>

<script type="text/javascript">
$(function() {
    $('#attackButton').click(function() {
        $.ajax({
            url: baseurl + '/index.php?option=com_pbbgs&format=raw&getinfo=goingame',
            data: { 'gameid': 618 },
            dataType: 'text',
            async: false,
            type: 'POST',
            success: function(data) {
                eval(data);

                if (window.gameURL) {
                    goingameRaw();
                }
            }
        });

        return false;
    });
});

function goingameRaw()
{
    window.open(window.gameURL,'test','left=20,top=20,width=1024,height=640,toolbar=0,resizable=0,location=0');
}
</script>

Ejemplo de cuerpo de respuesta:

window.gameURL="http://mydomain.com/index.php?option=com_pbbgs&format=raw&startgame=618&width=1024&height=640";checktutorial('js','attack');

Respuestas a la pregunta(6)

Su respuesta a la pregunta