我有一些代碼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