[英]window.open with target '_blank' opens a new browser window
我正在嘗試在新的瀏覽器選項卡(而不是在新窗口)中打開鏈接。
當我在頁面上放置鏈接時
<a href="#" onclick="window.open('http://www.google.com', '_blank');"> Click Here</a>
當用戶單擊鏈接時,它將在新的瀏覽器選項卡中打開google。 沒關系
但
$.ajax({
type: "POST",
url: someURL,
data: {somedata},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
window.open('http://www.google.com', '_blank'); // it's always open in new browser window and I want a new tab
},
failure: function (response) {
alert(response);
return;
}
});
當我在AJAX網絡方法中嘗試此方法時,它總是在新的瀏覽器窗口中打開它; 但我想在新標簽頁中打開它,因為它適用於上述示例。
我了解這是特定於瀏覽器的功能,但以某種方式我需要完成此操作。
嘗試這個
onclick="window.open('http://www.google.com', '_self');
好吧,它是特定於瀏覽器的,我在mozilla上對其進行了測試,並且工作正常,但是在chrome上,它在新的瀏覽器窗口中打開。 您可以建議鍍鉻制造商或致電ajax syncnus。
使用async:false
將起作用。
注意:在IE中,打開新瀏覽器窗口是默認行為。 用戶需要明確設置設置
您必須在這里玩一些小把戲。 您必須使用target ='_ blank'創建一個隱藏的鏈接標簽,並在ajax成功時設置該鏈接標簽的href,然后例如觸發該鏈接標簽的點擊。
HTML代碼
<a href="#" id="hidden_link" target="_blank">hidden</a>
js代碼
$.ajax({
type: "POST",
url: someURL,
data: {somedata},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
var hiddenLink = $("hidden_link");
hiddenLink.attr("href",response.href);
hiddenLink[0].click();
},
failure: function (response) {
alert(response);
return;
}
});
這是上面代碼的工作提琴
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.