Safari中的Javascript window.open问题

时间:2017-08-08 13:36:22

标签: jquery safari

我想用jquery打开新标签。但是,它不适用于safari或Mac。

我的代码:

<script>
    $(document).ready(function(){
        $.ajax({
            type: 'post',
            dataType: 'html',
            url:'http://localhost/test/remoteContent.html',
            async: false,
            success:function(data){
                window.open("http:google.com",'_blank');
            }

        })
    });
</script>

2 个答案:

答案 0 :(得分:3)

我知道这不是你想要的答案,但不幸的是,这就是现代浏览器安全的工作方式。由于弹出窗口和其他行为可以被滥用来做坏事的方式&#39;在网页上,文件上传表单字段click和其他情况下window.open之类的内容仅在用户明确执行操作时 才能正常工作。这些被称为trusted events,不能被JavaScript欺骗。我之前已经阅读了这篇文章,你应该发现this answer非常有用。

您必须修改工作流程,以便在用户点击某些内容后打开该标签页,或者在初始操作过程中打开新标签页。

答案 1 :(得分:0)

我已经找到了替代解决方案。在ajax响应之后,创建锚标记元素并触发click事件

 var a = document.createElement('a');
 a.href = 'https://google.com';
 a.setAttribute('target', '_blank');
 a.click();