<a href="">
のクリックを聞き、データ属性からのリンクで置き換えるJavaScript(jQuery)コードを実行しています。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