javascript - 使用 rel ="follow"设置所有外部链接时,如何手动将 rel ="nofollow"添加到特定域?

标签 javascript php html css social-networking

<分区>


想改进这个问题吗? 通过 editing this post 添加细节并澄清问题.

关闭 8 年前

我正在建立一个社区,例如社交网络或任何您称之为的社区。我为所有外部链接设置了一个代码,使它们成为不被关注的链接。

现在,我想编写一些代码,允许我从特定域中删除 nofollow att 并添加 follow att,因此我可以选择在 .php 中手动添加质量域以影响所有根文件夹和子域这些特定的领域。

重点是不要将所有域名都视为垃圾邮件或不推荐给搜索引擎,相反,我只想将社区用户使用的优质域名推荐给搜索引擎。

元素:http://www.jumzler.com/

完整的说明、资源或只是标题都可以。

谢谢。

最佳答案

我使用 jQuery 设置了一个客户端脚本,我认为它符合您的要求。

$.setAllowExternalLinksFollowed = function(externalLinkWhitelistArray) {
"use strict";
  var $externalDomLinks = $('a[href^="http"]');
  $externalDomLinks.each(function() {
    var $linkInstance = $(this);
    // Nofollow all ext links
    $linkInstance.attr('rel', 'nofollow');
    externalLinkWhitelistArray.forEach(function(whiteListedUri) {
      if ($linkInstance.attr('href') === whiteListedUri) {
        // Get rid of rel=nofollow from whitelisted links
        $linkInstance.attr('rel', '');
      }
    });
  });
};

这将在需要的 View 中初始化,如下所示:

"use strict"
$.setAllowExternalLinksFollowed([
  'http://www.google.com',
  'http://www.cnn.com'
]);

一旦此脚本有机会解析和操作 DOM,所有其他外部链接将在 DOM 检查器中显示为 rel="nofollow"。列入白名单的 uri 将改为将属性 rel="nofollow" chop 为 rel=""(或者您认为适合您的元素的任何内容,稍作调整)。

使用这支笔查看它的实际效果: http://codepen.io/nicholasabrams/pen/qdXWxB

我希望它符合要求!

PS:如果您想在服务器端执行此操作,则必须在生成链接的后端代码区域执行此操作,并与提供的 jQuery 解决方案中出现的内容进行类似的比较。在没有看到呈现/生成链接的后端代码的情况下,复制服务器端的解决方案是不可行的(链接是来自数组,还是静态的?如果链接,我们无法在服务器上做任何事情是静态的 - 它们是我们基于 OP 所知道的一切。

关于javascript - 使用 rel ="follow"设置所有外部链接时,如何手动将 rel ="nofollow"添加到特定域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30822592/

上一篇:javascript - 在 div 中显示日期时包括换行符

下一篇:html - 如何使行高与字体高度匹配?

相关文章:

javascript - .not() 函数 jquery 隐藏其他元素

javascript - 尝试使用 Node Express 发送 POST 响应,错误无效状态代码

php - 正则表达式整个输入匹配模式

php - 访问 PHP 中的特定列

javascript - 如何使引导导航下拉项处于事件状态?

html - Safari CSS 规则 vh-units?

javascript - 在 AngularJS 中加载部分 html 文件

javascript - 如何从 Angular 中的 JS 文件调用方法?

php - Eloquent:根据表关系计算行数

javascript - 带有未选择正确值的选择单元格的 Angularjs ng-grid