【发布时间】:2019-04-15 16:43:46
【问题描述】:
我正在努力实现两件事:
1) 我想让我页面上的所有外部链接在新标签页中打开
2) 同时我希望所有这些链接都是nofollow。
通过下面附加的代码,我能够实现 1) 但我似乎无法让 2) 工作
if (document.readyState != 'loading') {
fn();
} else if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', fn);
} else {
document.attachEvent('onreadystatechange', function() {
if (document.readyState != 'loading')
fn();
});
}
}
ready(function() {
var website = window.location.hostname;
var internalLinkRegex = new RegExp('^((((http:\\/\\/|https:\\/\\/)(www\\.)?)?'
+ website
+ ')|(localhost:\\d{4})|(\\/.*))(\\/.*)?$', '');
var anchorEls = document.querySelectorAll('a');
var anchorElsLength = anchorEls.length;
for (var i = 0; i < anchorElsLength; i++) {
var anchorEl = anchorEls[i];
var href = anchorEl.getAttribute('href');
if (!internalLinkRegex.test(href)) {
anchorEl.setAttribute('target', '_blank', 'rel','nofollow');
}
}
});
我希望我网站上的所有外部链接都在外部窗口中打开并成为 nofollow。另外,我想坚持使用 Javascript。
谢谢。
【问题讨论】:
-
我不认为
setAttribute支持根据这个developer.mozilla.org/zh-CN/docs/Web/API/Element/setAttribute 传递多个名称-值巴黎。你试试anchorEl.setAttribute('target', '_blank');然后anchorEl.setAttribute('rel', 'nofollow')? -
@SolomonTam 嘿,成功了!谢谢。如果对您有帮助,请随意复制粘贴到下面的答案部分,我可以将其标记为答案。
标签: javascript