在处理元素点击事件期间,在循环内部调用window.open()

时间:2013-12-16 19:01:35

标签: javascript jquery jquery-ui

我正在尝试根据某些条件在循环x次(target = _blank)内调用window.open()。但它只打开一个新标签。我做错了什么吗?这是我的代码

$('#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多次发生,顺便说一下,在调试过程中没有打开过网址。

编辑: Aaahh抱歉,弹出窗口被阻止了:D 但现在一个url在新标签页面中打开,另一个在新窗口中打开,我该如何解决?

4 个答案:

答案 0 :(得分:2)

您只能指定'_blank',然后用户浏览器将决定它是在新标签页还是新窗口中,您无法覆盖该“功能”。

答案 1 :(得分:1)

您无法解决此问题,在浏览器中,用户首选项是指希望打开链接的位置。从可用性的角度来看,强迫用户在新窗口中打开链接也是不受欢迎的

答案 2 :(得分:0)

检查window.open的规格。编写window.open(url, '_blank')的方式是创建一个名为_blank的窗口,并在每次打开同一窗口中的URL。尝试通过在计数器或其他地方附加一个数字来更改名称。

在选项卡与窗口中打开 - 这是浏览器中的首选项,您无法控制它。

答案 3 :(得分:0)

for(i=0;i<you want;i++){
 window.open("","","");
}