如何自动将 rel="noopener" 添加到 target="_blank" 链接?

EVE*_*ano -3 javascript

我有一个包含 target="_blank" 到所有外部链接的小 JS。出于安全原因,我还需要附加 rel="noopener"。

对实现这一目标有什么帮助吗?

我的脚本:

(function($) {
  jQuery(document).ready(function() {
    add_target_blank_to_external_links();
  });

  function add_target_blank_to_external_links() {
    $('a[href^="http://"], a[href^="https://"]').not('a[href*="' + location.hostname + '"]').attr('target', '_blank');
  }
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

小智 5

因此,您的最终解决方案如下所示。

注意这是一个很好的做法,rel="noopener"因为它可以防止新页面返回控制初始页面。你也可以使用像rel="noreferrer"

(function($) {
  jQuery(document).ready(function() {
    add_target_blank_to_external_links();
  });

  function add_target_blank_to_external_links() {
    $('a[href^="http"]').not('a[href*="' + location.hostname + '"]').attr({target: "_blank", rel: "noopener"});
  }
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="">Demo link</a>
Run Code Online (Sandbox Code Playgroud)