javascript window.open 在 safari 和 chrome 中不起作用

Pas*_*cut 5 javascript safari jquery google-chrome onclick

我有一个 div 元素。div 是一个图标。当您单击此图标时,将触发表单提交。在表单提交上有一些计算,这些计算的结果会打开一个新选项卡。

我使用“ window.open(url, '_blank');

但在 safari 和 chrome 中,这个新标签被视为弹出窗口并被阻止。

我试图创建一个隐藏的 a 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;
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/safeeronline/70kdacL4/1/

小智 6

你需要调用 window.open 作为 onclick 事件(用户事件)的直接结果......你不能在异步之前做一些事情,然后在结果上做 window.open