【发布时间】:2016-02-26 07:50:17
【问题描述】:
我正在尝试在调用成功方法后在新选项卡中打开一个链接。
由于我正在为该项目工作,因此无法共享代码。但我正在分享我的场景。
HTML 部分:
<button id="news" onclick="getNews()">Get News</button>
<a href="#" id="newTabLink" target="_blank" ></a>
Javascript 部分
function getNews(){
$.ajax({
url: "controllerName/actionMethod",
success: function(result){
//Assigning url to href
$('#newTabLink').href(result.url);
// Clicking the hyperlink
$('#newTabLink').click();
}
});
}
我的页面场景:
单击获取新闻按钮后,如果有任何新闻,它将从数据库中获取新闻。否则,它将在同一屏幕上显示一个弹出窗口,如“未找到新闻”。
现在,如果有任何消息,它会在 ajax 成功方法中返回 URL,我想在新标签中打开它,不是在新窗口中。
注意:我不想在ajax 设置中使用async:false。因为它会停止页面,直到响应来自服务器。
我尝试了什么:
我尝试在页面加载时创建 超链接(静态),并在 ajax 成功的链接中分配了 href。分配 href 后,我单击该超链接。
我的问题:
它是在新窗口中打开而不是在新标签中。
我想在没有 async:false 的新标签页中打开它,并且请注意,我不想打开新标签页在第一个按钮单击并设置超时。这对我的项目来说会变得很尴尬。
【问题讨论】:
-
在那,你更喜欢我的场景中的哪一个?我发现没有什么符合我的情况。你能告诉我吗?
标签: javascript jquery html ajax