繁体   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