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