2011-06-03 122 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

相關問題