在处理元素单击事件期间,在循环内部调用window.open()
Call window.open() inside loop during handling of element click event
我正试图根据某些条件在循环内调用window.open()x次(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都没有打开。
编辑:啊,抱歉,弹出窗口被阻止了:D但现在一个url在新选项卡中打开,另一个在新窗口中打开,我该如何解决这个问题?
您只能指定'_blank'
,然后用户浏览器将决定它是在新选项卡中还是在新窗口中,并且您不能覆盖该"功能"。
您无法解决此问题,这是用户在浏览器中希望打开链接的位置的首选项。从可用性的角度来看,强迫用户在新窗口中打开链接也是不可取的
检查window.open的规范。编写window.open(url, '_blank')
的方法是创建一个名为_blank
的窗口,每次都在同一窗口中打开url。试着通过添加计数器或其他东西的数字来更改名称。
就在选项卡中打开与在窗口中打开而言,这是浏览器中的首选项,您无法控制它。
相关文章:
- bluebird promise catch() 没有使用 Promise.CancelError 调用内部函数
- ES2015:从覆盖的类调用内部方法
- 未调用内部JS Angular Controller
- JavaScript - 从事件处理程序调用内部方法
- 在 JavaScript 中调用内部函数
- $watch 不会在 Angularjs 中调用内部选项卡
- 如何调用内部 JavaScript 类方法
- 为什么要调用内部函数而不是方法
- 正在调用内部函数Javascript
- 在我的javascript中调用内部函数的问题'类'
- 如何用对象表示法调用内部javascript函数
- Express.js:调用内部服务
- 从java代码调用内部javascript函数
- Javascript从外部调用内部函数
- 如何从Rails视图调用内部API(用于ReactJS预呈现程序)
- 调用内部函数
- 从脚本外部调用内部铯函数
- 调用内部对象函数javascript
- 调用内部异步回调后迭代for循环
- $scope不调用内部函数