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

标签 javascript jquery google-chrome safari onclick

我有一个 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;
        }
    });
});

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

最佳答案

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

关于javascript window.open 在 safari 和 chrome 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44180931/

相关文章:

javascript - Node.js Busboy 分别解析字段和文件

javascript - 无法通过 ng-model 在 html 上显示数组 json 值

jquery - Wordpress 子菜单未正确触发

javascript - Chrome上的Youtube iFrame API错误

Javascript XHR 请求在移动设备的后台选项卡上受到限制 - 解决方案?

javascript - Karma/Mocha 测试间歇性地导致 Chrome 中的整个页面重新加载

javascript - 对已定义函数的第二次调用不起作用

使用 $.extend 的 jQuery 深度/递归复制

javascript - Jquery将src从一个img添加到另一个img

html - 根据历史禁用 Chrome 中各个输入字段中的自动建议