如何使用 JS(有例外规则)自动在 new window 中打开外部链接?
How do I make external links open in new window automatically with JS (with exception rule)?
对于我的问题,到目前为止我还没有找到解决方案。
我想要的是一个 js 脚本,它将转换我网站(页面)上的所有外部链接,以便它们在新的 window 中打开(将 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');
});
谁能给我一个关于如何添加异常的示例脚本,当 a 标签具有 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() 将 class "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');
});
对于我的问题,到目前为止我还没有找到解决方案。 我想要的是一个 js 脚本,它将转换我网站(页面)上的所有外部链接,以便它们在新的 window 中打开(将 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');
});
谁能给我一个关于如何添加异常的示例脚本,当 a 标签具有 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() 将 class "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');
});