@faermark_s

Как открыть вкладку в фаерфокс?

На сайте такой скрипт
$('.js-money-button').on('click', function () {

        var sum = 0;
        if (!!slider) {
            sum = slider.noUiSlider.get();
        }

        $.ajax({
            url: '/ajax/handler.php',
            type: 'post',
            dataType: 'json',
            data: {action: 'set_user_sum', sum: sum},
            success: function (data) {
                console.log(data);
                if (data.IS_OK == 'Y') {
                    //alert('OK');
                    
                     window.open('./step');
                     setTimeout(() => { window.location = "./vitrina"; }, 500);

                } else {
                    alert('ошибка: ' + data.msg);
                }
            },
            error: function () {
                alert('send_ajax error, action=' + data.action);
            },
            complete: function () {
            }
        });

        /*
         window.open('./step')
         setTimeout(() => {
         window.location = "./vitrina";
         }, 500);
         */
    });


При нажатии на нужную кнопку фаерфокс блокирует всплывающее окно, как исправить?
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 2
@zkrvndm
Софт для автоматизации
Функцию window.open() нельзя использовать асинхронно, иначе возможен блок, как у вас.

Наилучший вариант, это прописать вызов окна внутрь кнопки, тогда блока не будет:
<button onclick="new_window = window.open('./step');">Кликни меня</button>

Далее, уже после того, как отработает ваш AJAX-скрипт вы можете тупо перезаписать содержимое нового окна:
new_window.document.write('Тест, проверка!');
new_window.document.close();

Или переадресовать его, куда вам там надо.
new_window.document.location.href = '/tuda_kuda_nado';
Ответ написан
Комментировать
@cython
Никак, это указывается в настройках браузера. Просто не используйте всплывающие окна, это не самая лучшая практика.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы