我正在努力实现两件事:
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');
}
}
});
我希望我网站上的所有外部链接都可以在外部窗口中打开,并且必须遵循。另外,我想坚持使用Javascript。
谢谢。
答案 0 :(得分:1)
根据this MDN网络文档,setAttribute()
仅接受一个名称和一个值。
所以不是
anchorEl.setAttribute('target', '_blank', 'rel','nofollow');
尝试
anchorEl.setAttribute('target', '_blank');
anchorEl.setAttribute('rel','nofollow');