在新标签中打开网址而不是弹出窗口(点击后)

时间:2014-03-18 18:14:03

标签: javascript

用户单击上下文菜单以创建新项目,该项目保存为异步,并在保存完成后在新选项卡中打开URL。多数民众赞成我想要的,但Chrome在弹出窗口中打开网址而不是新标签。在saveasync-then-handler之外打开窗口时,它工作正常(注释代码),但不在内部。我能做什么在处理程序中获得相同的行为?我尝试过使用open.bind(这个)但是没有帮助......

var open = function() {
  var win = window.open('/page', '_blank');
  win.focus();
};

client.SaveAsync().then(open); // This doesn't work, opens in a popup window

open(); // This works, opens in a new tab

1 个答案:

答案 0 :(得分:0)

有同样的问题,它的浏览器保护。 管理解决方法:

var win = window.open('/page', '_blank');
client.SaveAsync().then(function() {
    win.open('/page', '_self');
});

诀窍是,当它不在像http请求的响应之类的异步请求中时,它可以工作,所以我们在请求之前打开它,并在我们得到响应后重定向它。