我有一个 div 元素。 div 是一个图标。 当您单击此图标时,将触发表单提交。 在表单提交上有一些计算,这些计算的结果打开了一个新选项卡。
我使用“window.open(url, '_blank');”
但在 safari 和 chrome 中,这个新标签被视为弹出窗口并被阻止。
我试图创建一个隐藏的 href 并触发点击,以便在新选项卡中打开页面,但它不起作用。
知道如何解决这个问题吗?
编辑 - 找到解决方案
您需要在 $.ajax 成功方法中的单击事件上添加 window.open。这样它就可以工作了。
$('#myButton').click(function () {
var redirectWindow = window.open('http://google.com', '_blank');
$.ajax({
type: 'POST',
url: '/echo/json/',
success: function (data) {
redirectWindow.location;
}
});
});
最佳答案
你需要调用 window.open 作为 onclick 事件(用户事件)的直接结果......你不能在异步之前做一些事情,然后在那个结果上做 window.open
关于javascript window.open 在 safari 和 chrome 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44180931/