我正在尝试在新的浏览器标签中打开一个链接(而不是在新窗口中)。
当我在页面上放置链接时
<a href="#" onclick="window.open('http://www.google.com', '_blank');"> Click Here</a>
当用户点击链接时,它将在新的浏览器标签中打开谷歌。那没关系
BUT
$.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 Web方法中尝试这个时,它总是在新的浏览器窗口中打开它;但我想在新标签中打开它,因为它适用于上面的例子。
我知道这是浏览器特定的功能但不知何故我需要完成此操作。
答案 0 :(得分:1)
试试这个
onclick="window.open('http://www.google.com', '_self');
答案 1 :(得分:0)
它是浏览器特定的,我在mozilla上测试它并且工作正常,但在Chrome上它在新的浏览器窗口中打开。您可以向铬制造商建议或致电ajax同步。
使用async:false
即可。
注意:在IE中,打开新的浏览器窗口是默认行为。用户需要明确设置设置
答案 2 :(得分:0)
你必须在这里玩一个小技巧。 您必须创建一个隐藏的链接标记,其中包含target =&#39; _blank&#39;并在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;
}
});
以上是代码
的工作fiddle