我有一个链接,它侦听,并点击该链接时被触发的功能。重定向在新标签页时,href是不知道之前
问题是链接是未知的提前。因此,在这个函数中,服务器会发出ajax请求来检索它。严格要求链接只能在用户请求时生成,并且不能在手动生成。
你怎么然后重定向用户在新标签中该链接?
重述
因此,假设我有
<a href="unknown" target="_blank">My Link</a>
还有就是大干快上点击触发的事件处理程序。
我试过几种不同的方法。第一次
$('a[href="unknown"]').click(function(ev) {
$.ajax({
type: "GET",
url: "/get_link",
context: document.body
}).done(function(response) {
link = response.link
//substitute href of a to the new link
});
});
意识到,这并没有工作,因为AJAX是异步的,因此用户会被重定向至未知第一。然后,当收到响应时,href将被替换为正确的链接。
于是我试图使AJAX异步:假的,但仍然没有工作,我不舒服锁定浏览器。
最后,我试图抑制默认行为,然后打开一个新的窗口(但我无法打开使用jquery一个新标签)。
$('a[href="unknown"]').click(function(ev) {
ev.preventDefault();
$.ajax({
type: "GET",
url: "/get_link",
context: document.body
}).done(function(response) {
link = response.link
//substitute href of a to the new link
window.open(link)
});
});
显然,你周围的谷歌搜索,因为它是基于用户的浏览器设置jQuery中无法打开一个新标签后。
你怎么那么将用户重定向在新标签,当他们点击一个链接(事先未知)触发检索使用Ajax请求链接一个javascript函数?
你可能会改写你的问题吗?因为这个问题(最后一句/段落)似乎与你所说的其余部分没有关系,所以很难理解你想要什么。要在新标签中打开链接,请尝试使用''标签内的属性'target =“_ blank”'。 – 2012-06-15 02:10:08
尝试'window.open' – Ash
你能更具体一些,也许换个问题吗?我相信我没有正确地遵循它。 – Ryan