0

発信リンクを特定し、それらに target="_blank" を追加しようとしています。ただし、フィルターを追加して一部の外部リンクを除外したいのですが、どうすればよいですか?

例: 私のドメインが mydomain.com で、 Microsoft.com、Google.com、Wikipedia.com などを除くすべての外部ハイパーリンクに target=_blank を設定したいとします。これらの URL を除外するにはどうすればよいですか。

ここまで書いてきたのは

$('a[href^="http://"]').attr('target','_blank');
4

1 に答える 1

0

a を使用しfilter()てそれを行うことができます。

これは非常に冗長ですが、三項、正規表現、またはほぼすべてのものに対して href をチェックしたいものを使用できます。

$('a').filter(function() {
    var ret = false;
    if ( this.href.indexOf('http://') === 0 ) { // everything that starts with http://
        if ( this.href.indexOf('http://google.com') === 0 ) { // starts with ...
           ret = true;
        }
        // or if
        if ( this.href.indexOf('microsoft.com') != -1 ) { // href contains microsoft.com
           ret = true;
        }
    }
    return ret;
}).attr('target','_blank');

正規表現で:

$('a').filter(function() {
    var rgx = new RegExp('/^(?:http(?:s)?:\/\/)?(?:[^\.]+\.)?(microsoft\.com|google\.com|yahoo\.com)$/','gi');
    return this.href.match(rgx);
}).attr('target','_blank');
于 2013-09-19T18:31:31.210 に答える