How do I prevent Google Chrome from blocking my popup? How do I prevent Google Chrome from blocking my popup? google-chrome google-chrome

How do I prevent Google Chrome from blocking my popup?


Yes, popups should be a direct result of a user action. Doing them in ajax callback will not do the trick. Also, using async:false is bad - in FF it is known to block the whole browser. Think of some other way to do the check:

  • it could be the first thing you do in the popup
  • you can open the popup on click and manipulate it later when the callback fires
  • you can require the user to click again some button to trigger the popup (probably the worst solution)
  • you can do it on page load


Following up on Emil's excellent answer, "you can open the popup on click and manipulate it later when the callback fires". I used this implementation.

$('#attackButton').click(function() {

New code here

    var win = window.open('');    window.oldOpen = window.open;    window.open = function(url) { // reassignment function        win.location = url;        window.open = oldOpen;        win.focus();    }

end new code

    $.ajax({        url: baseurl + '/index.php',        data: { 'gameid': 618 },        type: 'POST',        success: function(data) {            window.open('some url'); // will call reassignment function above         }    });    return false;});


You can open a window that is not blocked just under the onclick event, if you open it on ajax call it is considered popup. However I used this method with success for some time to open a popup and not be blocked.

http://en.nisi.ro/blog/development/javascript/open-new-window-window-open-seen-chrome-popup/