Открыть все ссылки в новой вкладке, КРОМЕ ТОК - PullRequest
0 голосов
/ 07 октября 2019

Я хотел бы открыть все ссылки в основном тексте наших статей на новых вкладках, кроме хеш-ссылок из нашего оглавления.

Я уверен, что это довольно просто, но я не уверен, как указать, чтобы НЕ включать оглавление

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 и #t две новой вкладки, но открыть example.com вновая вкладка?

Ответы [ 2 ]

2 голосов
/ 07 октября 2019

Edit:

Как вы уже упоминали, все ваши ссылки 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");
0 голосов
/ 07 октября 2019

новая вкладка или окно (зависит от настроек вашего браузера)

включить этот параметр, если вы привязываете тег (<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...