为了账号安全,请及时绑定邮箱和手机立即绑定

在新标签页中打开所有链接,除了 TOC

在新标签页中打开所有链接,除了 TOC

噜噜哒 2021-11-12 14:19:54
我想在新标签中打开我们文章正文中的所有链接,除了我们目录中的任何哈希链接。我确定这很简单,但我不确定如何指定不包含 TOC用于在新选项卡中打开文章主要内容中的链接的 Javascript:$(".single-post .entry-content p a").attr("target","_blank");示例文章 HTML<h2>Jump Ahead!</h2><a href="#one">Header One</a><a href="#two">Header Two</a><h2><a name="one"></a>Header One</h2>This is an example of a link that should open in a new tab <a href="https://example.com">New Tab</a>.<h2><a name="two"></a>header Two</h2>关于如何不让 #one 和 #two 打开新标签但在新标签中打开 example.com 的任何想法?
查看完整描述

2 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

编辑:


正如您现在提到的,您的 TOC 链接都有一个href以哈希 (#) 开头,因此:


$("a").each(function() {

  //if the link is not a TOC link

  if($(this).attr('href') && !$(this).attr('href').startsWith('#')) {

    $(this).attr('target', '_blank');

  }

});

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<h2>Jump Ahead!</h2>

<a href="#one">Header One</a>

<a href="#two">Header Two</a>



<h2><a name="one"></a>Header One</h2>


This is an example of a link that should open in a new tab <a href="https://example.com" class="blank">New Tab</a>.


<h2><a name="two"></a>header Two</h2>

在这个片段中,我遍历所有<a>标签并检查它们的 href 是否以#. 如果没有,我正在添加target _blank属性。


或者,如果所有 TOC 链接都在一个<h2>标签内,您可以使用以下选择器来定位所有没有<h2>作为父标签的锚标签:

$("a:not(h2 a)").attr("target", "_blank");


查看完整回答
反对 回复 2021-11-12
?
慕容森

TA贡献1853条经验 获得超18个赞

新选项卡或窗口(取决于您的浏览器设置)


包括这个参数我你锚标签(<a href...>)


target="blank"


所以这样写


<h2>Jump Ahead!</h2>

<a href="#one">Header One</a>

<a href="#two">Header Two</a>



<h2><a name="one"></a>Header One</h2>


This is an example of a link that should open in a new tab <a href="https://example.com" target="blank">New Tab</a>.


<h2><a name="two"></a>header Two</h2>


查看完整回答
反对 回复 2021-11-12
  • 2 回答
  • 0 关注
  • 116 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信