我有以下(jquery)选择器寻找外部链接。
这样做,并忽略包含location.hostname
的所有链接(例如www.domain.com)
我的问题是,如何将此扩展为忽略指向您网站子域的链接? (例如new.domain.com)
$('a').each(function() {
var href = $(this).attr('href');
if(this.hostname && this.hostname !== location.hostname)
{
$(this)
.removeAttr('target')
.attr('rel', 'external')
.attr('title', href)
.click(function() {
window.open($(this).attr('href'));
return false;
});
}
});
答案 0 :(得分:4)
$('a').filter(function() {
return this.hostname && this.hostname !== location.hostname && this.hostname.indexOf('.'+location.hostname)!=-1
})
答案 1 :(得分:0)
如果您知道您的子域名与您网站的主机名相关的内容,那么您可以直接制作一个正则表达式。例如,如果您的主机名始终是x.y.z,那么您可以拆分主机名的最后两个部分,并忽略主机名以相同方式结束的任何锚点。
var parts = location.hostname.split('.'),
domainMatch = new RegExp('[^.]*\\.' + parts[1] + '\\.' + parts[2] + '$');
if (this.hostname && !domainMatch.test(this.hostname)) {
// ...
}