javascript window.open不在safari和chrome中工作

时间:2017-05-25 12:44:06

标签: javascript jquery google-chrome safari onclick

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

我使用" window.open(网址,' _blank'); "

但是在safari和chrome中,这个新选项卡被视为弹出窗口并被阻止。

我尝试创建一个隐藏的href并触发点击,这样它就会在新标签页中打开页面,但它不起作用。

知道如何解决这个问题吗?

编辑 - 解决方案

您需要在$ .ajax成功方法内的click事件中添加window.open。这样就可以了。

$('#myButton').click(function () {
    var redirectWindow = window.open('http://google.com', '_blank');
    $.ajax({
        type: 'POST',
        url: '/echo/json/',
        success: function (data) {
            redirectWindow.location;
        }
    });
});

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

1 个答案:

答案 0 :(得分:3)

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