簡體   English   中英

使用目標“ _blank”打開window.open打開一個新的瀏覽器窗口

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM