我有这样的代码:
window.open('https://api.instagram.com/oauth/authorize/',
'_blank',
'width=700,height=500,toolbar=0,menubar=0,location=0,status=1,scrollbars=1,resizable=1,left=0,top=0,modal=yes');
从任何代码处调用时都可以正常工作,但是当我在promise中使用它时(见下文),它总是被浏览器阻止。有什么建议吗?
action().success(function (r) {
// window.open(...);
}
承诺来自棱角分明。
答案 0 :(得分:15)
var newTab = $window.open('', '_blank');
promise
.then(function () {
var url = '...';
newTab.location.href = url;
});
答案 1 :(得分:13)
我用来解决这个问题的方法是
win.location
)答案 2 :(得分:6)
响应您从Ajax请求获取HTTP响应时,将触发promise。这不是用户触发的事件,因此弹出窗口被阻止。使用用户提供的窗口而不是创建新窗口。