はEVERY A
要素をループするために起こっている - あなただけの、実際のクリックでそれを心配することができます。また、あなたはあなたのサイトである相対URLで実行することができ、絶対URLは他人のものです。
$(document).on('click', 'a', function(event){
var $a = $(this);
// test for anything like `http://` or '//whatever' or 'ftp://'
if (/^\w+?\:?\/\//.test($a.attr('href'))){
// since this runs before the event is propagated,
// adding it now will still work
$a.prop('target', '_blank');
}
});
デモ:http://jsfiddle.net/danheberden/3bnk9/
それとも、window.openを使用することができます。
$(document).on('click', 'a', function(event){
var href = $(this).attr('href');
// test for anything like `http://` or '//whatever' or 'ftp://'
if (/^\w+?\:?\/\//.test(href)){
// dont follow the link here
event.preventDefault();
// open the page
window.open(href, '_blank');
}
});
デモ:http://jsfiddle.net/danheberden/NcKdh/
あなたはこの方法は、あなたがポップアップブロッカー場合は、すべてのリンクを破ることを実現有効になっています? HTMLソースでこれを直接行うほうがずっと優れています。この場合、 'target =" _ blank "はポップアップブロッカーを起動せずに動作します。 –
@Pekkaだから、window.openを使って.click()を使うと、リンクが壊れてしまうのですが、その下にある.attr()メソッドを使ってHTMLコードを追加してください。 –
'target =" _ blank "を追加した以下のメソッドはそれを壊すべきではありません。 –