我有一些代码JavaScript(jQuery)代码正在运行,用于侦听<a href="">
点击并将其替换为数据属性中的链接。仅当用户需要时,JavaScript窗口位置新选项卡
<a class="js-external" href="http://www.google.com/" data-href="/tracking.php?url=http://www.google.com/">Google</a>
<script type="text/javascript">
$('a.js-external').click(function(e) {
var hrefNew = $(this).attr('data-href');
if (hrefNew) {
e.preventDefault();
window.location.href = hrefNew;
}
});
</script>
这按预期工作,但打破了一些浏览器行为。如果用户ctrl
+ click
的链接(在新窗口中打开它),该URL仍然会在同一窗口中打开。
我该如何不打破常规浏览器?我是否也应该检测用户是否按住ctrl
,然后使用window.open()
?
'如果(e.ctrlKey)window.open(...)'? –
是的,我可以做到这一点。但我也必须为mac添加'metaKey',并且可能还会增加一些边缘情况。没有更好的方法吗? – DenverCoder9