Как мне сделать запретить Google Chrome блокировать мое всплывающее окно?

На моем веб-сайте есть кнопка, которая использовалась для вызова функции, вызывающей window.open , однако недавно потребовалась корректировка для выполнения проверки на стороне сервера перед было открыто всплывающее окно.

С тех пор, как был добавлен код, выполняющий вызов AJAX, браузеры блокируют всплывающее окно, которое открывается в обратном вызове success вызова AJAX. Я читал, что браузеры могут блокировать всплывающее окно, если оно не вызывается событием щелчка пользователя, поэтому я попытался установить для запроса AJAX значение async: false , что решило проблему в Firefox, но Google Chrome по-прежнему блокирует мои неожиданно возникнуть. Есть ли способ обойти это?

Я мог бы переместить проверку на стороне сервера на страницу, которая открывается во всплывающем окне, но я бы хотел сделать это перед открытием всплывающего окна, если это возможно.

Код :

<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>

Пример тела ответа:

window.gameURL="http://mydomain.com/index.php?option=com_pbbgs&format=raw&startgame=618&width=1024&height=640";checktutorial('js','attack');
38
задан Aistina 5 January 2011 в 10:21
поделиться