首页 文章

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

提问于
浏览
2

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

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

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

我试图创建一个隐藏的href并触发click,这样它将在新选项卡中打开页面,但它不起作用 .

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

EDIT - SOLUTION FOUND

您需要在$ .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 回答

  • 3

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

相关问题