首页 > 解决方案 > 为什么我不能让外部链接成为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。

谢谢你。

标签: javascript

解决方案


根据这个MDN web dosc,setAttribute()只接受一个名称和一个值。

所以而不是

anchorEl.setAttribute('target', '_blank', 'rel','nofollow');

尝试这个

anchorEl.setAttribute('target', '_blank');
anchorEl.setAttribute('rel','nofollow');

推荐阅读