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

问题描述 投票:1回答:1

用户单击上下文菜单以创建新项目,该项目保存为异步,并在保存完成时在新选项卡中打开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
javascript
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.