Вызовите window.open () внутри цикла во время обработки события нажатия элемента

0

Я пытаюсь вызвать window.open() внутри цикла x times (target = _blank) на основе некоторых критериев. Но он открывает новую вкладку только один раз. Я что-то делаю неправильно? Вот мой код

$('#spogo_' + _sp.spid).button()
     .button('option', 
        {
             label : 'Go to',
             icons : {
                 primary : 'ui_icon_goto'
             }
        })
    .on('click', function(){
         var selRow = model._getSelectedRow($('#spt_' + this.id.split('spogo_')[1]).dataTable())[0];
         for(var i = 0 ; i < selRow.cells.length ; i ++){
             var cell = selRow.cells[i];
             if($(cell).hasClass('vdata_cell')){
                  window.open($(cell).attr('data'), '_blank');
             }
         }
    });

Я попытался отладить это и обнаружил, что if происходит несколько раз, кстати, во время отладки ни один URL не был открыт.

EDIT: Aaahh извините, что всплывающее окно было заблокировано: D Но теперь один URL-адрес открывается внутри новой вкладки, другой в новом окне, как я могу это решить?

  • 0
    Почему в мире вы зацикливаетесь и проверяете класс? Просто используйте селектор, чтобы найти элемент.
  • 0
    Каково значение $ (cell) .attr ('data')? Я только что попробовал window.open('http://www.cheese.com', '_blank') и он открывает несколько вкладок.
Показать ещё 5 комментариев

3 ответа

2
Лучший ответ

Вы можете указать только '_blank' а затем браузер пользователей решит, находится ли он на новой вкладке или в новом окне, и вы не можете переопределить эту "функцию".

  • 0
    :( Спасибо. Но нажатие с нажатой клавишей Ctrl открыло ее в новых вкладках
  • 0
    По умолчанию большинство браузеров открывают ctrl+click ссылкам в новой вкладке.
Показать ещё 3 комментария
1

Вы не можете решить эту проблему, это предпочтение пользователя в браузере, где они хотят, чтобы ссылка была открыта. Он также смущен с точки зрения удобства использования, чтобы заставить пользователей открывать ссылки в новом окне

0

Проверьте спецификацию для window.open. То, как вы его написали window.open(url, '_blank'), создает одно окно с именем _blank и каждый раз открывает URL-адрес в том же окне. Попробуйте изменить имя, добавив номер из счетчика или что-то в этом роде.

Что касается открытия вкладки или окна - это предпочтение в браузере, и вы не контролируете его.

  • 0
    Я редактировал пост, теперь он открывается несколько раз
  • 0
    Это то, что вы пытались сделать?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню