Обход блокирования попапов в javascript

По-хорошему, кликать на кнопку, делать сетевой запрос и открывать попап не очень хорошая идея и современные браузеры эту попытку пресекают. Но если очень надо, то можно этот запрет обойти.

Допустим, есть тег <a> у которого прописано событие onClick с таким кодом:

var data = makeAjaxCall();
window.open(data['formUrl'], '_blank');

Скорее всего такой код не сработает - браузер выведет предупреждение, что попап заблокирован. Решением будет открытие нового окна до выполнения сетевого запроса и уже после получения ответа редиректнуть открытое окно на нужный адрес:

var popup = window.open('', '_blank');
popup.document.write('Loading...');
var data = makeAjaxCall();
popup.location.href = data['formUrl'];

Комментарии

comments powered by Disqus