通过在jQuery中单击链接打开新标签页(窗口)

41
我有一个Web应用程序,显示带有“go”和“delete”按钮的行。
如果用户点击“go”,它应该打开一个新的选项卡/窗口,并从该行的数据构建URL。
如何在jQuery中实现这一点?我的做法是:
$('.go').click( function () {
   var wid = {{ wid|tojson|safe }};
   var sid = $(this).prop('id');
   url = $script_root + '/' + wid + '/' + sid;

   // go to url
});

一些更新:

我真正想要实现的是动态更新 <a> 元素的 href 属性。

<a id="foo" href="#">foo</a>
<script type="text/javascript>
$('#foo').click( function() {
  $(this).prop('href', 'http://www.google.com/');
});
</script>

这不起作用(示例:http://jsfiddle.net/6eLjA/


这不是jQuery代码吗? - Dipesh Parmar
在调用window.open时,您可以提供"_blank"。 - K D
访问 https://dev59.com/tWsz5IYBdhLWcg3w8Mmr - Manish Goyal
1个回答

92

试试这个:

window.open(url, '_blank');

这将在新标签页中打开(如果您的代码是同步的,而在这种情况下它是。否则它会打开一个窗口)。

你所说的“如果你的代码是同步的”是什么意思? - VisioN
6
这段代码不会打开新标签页:$.get('someurl', function(){ window.open('anotherurl', '_blank'); }),它会打开一个窗口,因为ajax请求默认是异步的(可以更改)。 - karaxuna
1
Google Chrome跳出一个弹窗告诉我它阻止了一个“弹出窗口”。有没有什么帮助?有没有任何方法可以绕过这个问题? - RPDeshaies
3
为了防止谷歌浏览器阻止弹出窗口,应将 window.open 放置在点击事件内部。 - djrconcepts
不是很重要,但你能把 'url' 用引号括起来吗?如果你没有用引号输入 URL 参数,它就无法运行。 - Blake Allen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接