对于我的问题,到目前为止我还没有找到解决方案。
我想要的是一个js脚本,它将转换我的网站(页面)上的所有外部链接,以便它们在新窗口中打开(将target = _blank添加到a标签)。

为此,我找到了一个执行此操作的简单脚本,它的工作原理就像一个魅力(来源:gist.github.com/wpscholar)。但是,我完全无法控制输出。而且我认为,对哪些链接更改和哪些不更改进行一点控制是有意义的。这是基本脚本:

/** Open all external links in a new window */
jQuery(document).ready(function($) {
$('a')
    .filter('[href^="http"], [href^="//"]')
    .not('[href*="' + window.location.host + '"]')
    .attr('rel', 'nofollow noopener noreferrer')
    .attr('target', '_blank');
});


谁能给我一个有关如何添加异常的示例脚本,例如当标签具有class = trusted时?仅设置了target属性,而rel属性则留空的地方。

<a href="https://somedomain.com/" class="trusted">anchor</a>


成为:

<a href="https://somedomain.com/" class="trusted" target="_blank">anchor</a>


当找不到class = trusted时,它应该只执行示例脚本。

非常感谢,新年快乐!

最佳答案

我认为您应该使用not()将类“ trusted”添加到jQuery选择器中(就像对href所做的那样):

/** Open all external links in a new window */
jQuery(document).ready(function($) {
$('a')
    .filter('[href^="http"], [href^="//"]')
    .not('[href*="' + window.location.host + '"]')
    .attr('rel', 'nofollow noopener noreferrer')
    .not('.trusted')
    .attr('target', '_blank');
});

10-04 22:08