用户单击上下文菜单以创建新项目,该项目保存为异步,并在保存完成后在新选项卡中打开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
答案 0 :(得分:0)
有同样的问题,它的浏览器保护。 管理解决方法:
var win = window.open('/page', '_blank');
client.SaveAsync().then(function() {
win.open('/page', '_self');
});
诀窍是,当它不在像http请求的响应之类的异步请求中时,它可以工作,所以我们在请求之前打开它,并在我们得到响应后重定向它。