对于我的问题,到目前为止我还没有找到解决方案。
我想要的是一个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');
});