【问题标题】:Why can't I get external links to be nofollow?为什么我不能让外部链接成为nofollow?
【发布时间】: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


【解决方案1】:

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

所以不是

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

试试这个

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-13
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 2016-05-13
    相关资源
    最近更新 更多