есть ссылка HTML: <a class="urlop" href="https://s.com/ target="_blank"></a> мне нужно при клике на нее открыть новую вкладку плюс еще другую вкладку это обработчик клика Код (Javascript): $.get('url', function(data) { if (data != '') { window.open(data); } }); никак не получается открыть 2 окна,открывается только 1 окно как сделать?
$(document).on(click) клик отрабатывает,но открывается только 1 окно вот полный код с попытками Код (Text): $(document).on('click', 'a.urlop', function() { //window.open($(this).attr('href'), '_blank'); var url = ''; $.ajax({ url: 'url', //async: false, success: function(data) { setTimeout(function() { if (data != '') { console.log(data); window.open(data, 'w2'); } }, 1000, data); } }); //if (url != '') { // console.log(url); // window.open(url, 'w2'); //} //$.get('url', function(data) { // if (data != '') { // console.log(data); // window.open(data); // } //}); //console.log($(this).href);
Потому что отрабатывает стандартный обработчик клика, который открывает окно ибо в таргете записан бланк? В этом обработчике на 99% окно не должно открываться. Будет создан запрос ко вряд ли существующему ресурсу и сервер вряд ли вернет нормальный статус по которому выполнится саксес-колбэк.
есть решение чтобы открыть 2 окна? одно окно по href а другое скриптом --- Добавлено --- гугление показало что это не тривиальная задача
@vikrorpert ты хочешь открыть окно если ajax запрос удался? Не очень понятно что значит два окна. Можно разные target прописать.
да общий смысл такой но счас смотрю что второе окно не открывается даже если явно вызвать window.open в обработчике клика
указывал _blank и случайное имя, все равно открывает 1 окно а насчет кому нужно-заказчику нужно, кому же еще?
Конечно есть. Хоть десять. Хоть сто. У ссылки есть стандартный обработчик клика - переходитель браузером на новую локацию. Джаваскриптом можно навесить любое неразумное кол-во обработчиков клика. Собственно, у тебя уже всё что нужно - есть. Внешний обработчик клика делает кривой запрос, не получает данных, не выполняет свой саксес и не открывает окно. Зато стандартный обработчик в тот же момент спокойно открывает "таргет: _бланк" с локацией указанной в ссылке.
Тут примерчик подъехал... ajax.php - вернет ссылку, которую нужно показать в окне PHP: <?php echo 'win.php?r=', rand(0, 100000); win.php - открывается в новом окне и показывает значение аргумента r PHP: <!DOCTYPE html> <html> <head> <title>ru.php.forum.62144 :: Win</title> </head> <body> <?= filter_input(INPUT_GET, 'r', FILTER_SANITIZE_NUMBER_INT) ?> </body> </html> index.php - покажет три числа при клике на которые будет открыто соответствующее кол-во окон. PHP: <!DOCTYPE html> <html> <head> <title>ru.php.forum.62144</title> <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"> </script> </head> <body> i <a href="#1" class="url" id="i1">1</a> <a href="#2" class="url" id="i2">2</a> <a href="#3" class="url" id="i3">3</a> <script type="text/javascript"> $('a.url').on('click', function () { var l = Number.parseInt(this.innerHTML); for (var i = 0; i < l; i++) { var wid = this.id + '-' + i; (function (wid) { $.ajax({ url: 'ajax.php', success: function (data) { setTimeout(function () { if (data !== '') { console.log(data, wid); window.open(data, wid); } }, 1000); } }); })(wid); } }); </script> </body> </html>
из этого надо сделать вывод, что поскольку у конечного пользователя может и не возникнуть желания разрешать попапы - вероятно задача требует иной реализации
Никак. Это уже основы вэба в целом и понятия ссылки в частности. Ссылка указывает на уникальный ресурс. Несколько ссылок могут ссылаться на один ресурс. Одна ссылка не может ссылаться на несколько ресурсов (с поправкой на окружение).
сделал открытие вкладок через клик по ссылкам через document.getElementById('url').click() первая вкладка всегда открывается,дальше всплывает блокировщик
Давай с другой стороны всё же зайдем. Что ты пытаешься сделать? Зачем такое неадекватное кол-во всплывающих окон?
я пытаюсь реализовать хотелку заказчика задача-при клике по ссылке, или не важно куда кликать,можно по кнопке, нужно открыть 2 разных вкладки с разными ссылками чтобы у юзера открылись 2 разные вкладки
а фрейм зачем? есть сайт,юзер кликает на ссылку,ему открываем эту ссылку плюс открываем свою реф ссылку=2 вкладки открываются