2011-06-03 54 views
0

服务器响应后,在浏览器中打开新选项卡时出现问题。这里是一个服务器代码(我用的Rails 3.0.5):使用jQuery在服务器响应后打开新选项卡

respond_to do |format| 
    format.js { render :json => {:url => link.url}, :status => :accepted } 
end 

所以,因为我使用jQuery的AJAX调用后默认的JS库我处理这个脚本服务器响应:

$('.link').bind('ajax:success', 
    function(e, data, textStatus, jqXHR){ 
    $('#megalink').attr("href", data.url); 
    $('#megalink').trigger('click'); 
}); 

哪里“megalink”是:

<a href="" style="color:white;" target="_blank" id="megalink">.</a> 

所以问题是:在202服务器响应新标签没有创建。也许你知道如何在新标签中打开网址?

回答

0

使用window.open(data.url);

希望有帮助。

+0

window.open只是打开一个新窗口,而不是浏览器选项卡,这是一个问题 – makaroni4 2011-06-03 19:25:23

+1

问题是,浏览器可以确定如何处理该操作。对我来说,它会在选项卡中打开(我使用的是Firefox)。没有window.openTab()功能。 – 2011-06-03 20:22:45

0

嗯,_blank目标应该工作,如果你可以设置一个jsfiddle来显示它是如何中断的,它会更容易帮助。否则,您可以尝试:

window.open(thenewurl); 
0

浏览器弹出窗口阻止程序会在脚本执行上下文中打开一个新窗口。

在同步模式下使用jquery AJAX它将解决您的问题。

+0

我允许浏览器打开所有弹出窗口,但问题仍未解决(( – makaroni4 2011-06-03 19:26:24

相关问题