javascript - 为什么我不能让外部链接成为nofollow?
问题描述
我正在努力实现两件事:
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。
谢谢你。
解决方案
根据这个MDN web dosc,setAttribute()
只接受一个名称和一个值。
所以而不是
anchorEl.setAttribute('target', '_blank', 'rel','nofollow');
尝试这个
anchorEl.setAttribute('target', '_blank');
anchorEl.setAttribute('rel','nofollow');
推荐阅读
- node.js - 动态匹配查询 MongoDB
- google-cloud-firestore - Firestore 组集合查询仅返回每个子集合中的最后一个文档
- google-app-engine - 如何通过本地机器上的 python 代码获得对 GCP 项目的授权访问?
- php - 显示来自页表用户 Codeigniter 的新页表详细信息
- ios - AVAudioSession iOS 12.4.1 当应用程序处于后台时,无法使用 Timer.scheduledTimer 录制音频
- python - 如何将变量值作为关键字参数键传递?
- reactjs - 方法“props”意味着在 1 个节点上运行。找到了 0 个。+ 酶 + ForEach
- python - 保存 32 位浮点 TIFF 图像
- python - 如何遍历经度和纬度的地址列表(Python)
- apache-flink - KeyedStream#timeWindow#process中的key和Window实例有什么关系