从iframe javascript事件中打开一个新选项卡,不带弹出框

从iframe javascript事件中打开一个新选项卡,不带弹出框,javascript,jquery,iframe,Javascript,Jquery,Iframe,我在页面中有一个iframe 在我成功地将数据发送到iframe中的服务器后,服务器会响应下一个要打开的URL,我想在新选项卡中或在父窗口中打开下一个URL 我面临的问题是,浏览器将其视为弹出窗口并阻止它。 在chrome中,它被视为弹出窗口,而在safari中,它什么都不做 iframe指向(用REACT编写) 父URL为 下面是导致错误的代码部分 this.props.dispatch(actions.init_db(vals, (error,data)=>{

我在页面中有一个iframe

在我成功地将数据发送到iframe中的服务器后,服务器会响应下一个要打开的URL,我想在新选项卡中或在父窗口中打开下一个URL

我面临的问题是,浏览器将其视为弹出窗口并阻止它。 在chrome中,它被视为弹出窗口,而在safari中,它什么都不做

iframe指向(用REACT编写) 父URL为

下面是导致错误的代码部分

            this.props.dispatch(actions.init_db(vals, (error,data)=>{
                this.setState({loading:false})
                if(error){
                    this.setState({error:error});
                }else{
                    url=data.next_url;
                    var win=window.open(url);
                    win.focus();
                 }
           })); 
基本上,actions.init_db()调用将值写入服务器的ajax函数

服务器响应错误或数据。如果没有错误,则数据包含下一个URL,我要打开该URL


对此解决方案的任何建议或替代方案都将不胜感激。

您不能。如果调用
window.open
的代码没有直接响应用户操作(如单击),则很可能会被浏览器的弹出窗口阻止程序阻止。解决方案是确保您运行的代码直接响应用户操作。例如,当您从服务器获得URL时,在页面上显示一个div,其中包含链接,供用户自己打开