2

現在、追跡ソフトウェアを通過する php リダイレクトがいくつかありますが、訪問者のブラウザーの新しいタブで開きたいのですが、手動でtarget="_blank"またはを追加してサイト全体を通過したくありませんrel=external

現在のリンクは次のようになっています

<a href="http://www.website-shown-browser.com" onclick="this.href='http://'+window.location.host+'/visit/redirect.php'">Website</a>

ドメイン URL に基づいて外部リンクを自動的に識別する jQuery コードの例をいくつか見ますが、ドメインでホストされているこれらのリダイレクトを使用しているため、これらのリンクは除外されます。

4

1 に答える 1

5

可能ですが、手動で追加するのとは対照的に、必ずしも効率的ではありません。すべての a タグを選択し、それらの href が外部であるかどうかを確認します。次に、この要素の属性targetを次のように設定します。_blank

$('a').each(function() {
   var a = new RegExp('/' + window.location.host + '/');
   if(!a.test(this.href)) {
       $(this).click(function(event) {
           event.preventDefault();
           event.stopPropagation();
           window.open(this.href, '_blank');
       });
   }
});

より効率的な方法は、セレクターを調整して で始まるタグのみを選択することhttp://ですが、これは、内部リンクのプレフィックスが でない場合にのみ機能しますhttp://

$("#content a[href^='http://']").attr("target","_blank");
于 2012-07-22T02:47:12.007 に答える