Как я добавляю цель = “_blank” к ссылке в указанном отделении?

Вы можете применить простое свойство из топологии.

Во-первых, убедитесь, что ваша граница разделяет вселенную (все доступные точки, с которыми вы имеете дело). Возможно, вам придется продлить границу через океан, чтобы закончить это.

Теперь, выберите любую контрольную точку, которая помечена как для региона - чтобы определить «Север» и «Юг», у вас должна быть хотя бы одна такая точка. w.l.o.g. предположим, что это «южная» точка, называемая Z.

Теперь, для каждой точки A, которую вы хотите классифицировать, нарисуйте непрерывный путь (прямой обычно проще, но не обязателен) от A до Z. Найти пересечения этого пути с границей. Если у вас четное количество пересечений, то A относится к тому же классу («юг»), что и Z; с другой стороны, это в другом классе («Север»).

Обратите внимание, что для этого требуется топологическое свойство «разбиения» - касательных к граничной линии нет: если ваш путь касается границы, он должен полностью пересечь.

62
задан Adam Konieska 12 May 2016 в 13:52
поделиться

5 ответов

/* here are two different ways to do this */
//using jquery:
$(document).ready(function(){
  $('#link_other a').attr('target', '_blank');
});

// not using jquery
window.onload = function(){
  var anchors = document.getElementById('link_other').getElementsByTagName('a');
  for (var i=0; i<anchors.length; i++){
    anchors[i].setAttribute('target', '_blank');
  }
}
// jquery is prettier. :-)

Вы также можете добавить тег заголовка, чтобы уведомить пользователя, что вы делаете это, чтобы предупредить его, потому что, как было указано , это не то, чего ожидают пользователи:

$('#link_other a').attr('target', '_blank').attr('title','This link will open in a new window.');
131
ответ дан 24 November 2019 в 16:33
поделиться

Non-jquery:

// Very old browsers
// var linkList = document.getElementById('link_other').getElementsByTagName('a');

// New browsers (IE8+)
var linkList = document.querySelectorAll('#link_other a');

for(var i in linkList){
 linkList[i].setAttribute('target', '_blank');
}
51
ответ дан 24 November 2019 в 16:33
поделиться

Использование jQuery:

 $('#link_other a').each(function(){
  $(this).attr('target', '_BLANK');
 });
5
ответ дан 24 November 2019 в 16:33
поделиться

Имейте в виду, что веб-разработчики и эксперты по юзабилити в целом считают это плохой практикой. У Джейкоба Нильсона есть что сказать об удалении контроля над работой пользователей:

Избегайте порождения нескольких окон браузера, если это вообще возможно - отмена кнопки «Назад» у пользователей может сделать их опыт настолько болезненным, что обычно намного перевешивает любую выгоду вы пытаетесь предоставить. Одна из распространенных теорий в пользу появления второго окна заключается в том, что оно не дает пользователям покинуть ваш сайт, но по иронии судьбы оно может иметь только противоположный эффект, не давая им вернуться, когда они этого захотят.

Я считаю, что это обоснование для Атрибут target удаляется W3C из спецификации XHTML 1.1.

Если вы решительно настроены использовать этот подход, решение Pim Jager хорошо.

Более приятной и удобной для пользователя идеей будет добавление графического изображения ко всем вашим внешним ссылкам, указывающее пользователю, что переход по ссылке приведет к их извлечению.

Вы можете сделать это с помощью jquery:

$('a[href^="http://"]').each(function() {
    $('<img width="10px" height="10px" src="/images/skin/external.png" alt="External Link" />').appendTo(this)

});
7
ответ дан 24 November 2019 в 16:33
поделиться

Встроенный:

$('#link_other').find('a').attr('target','_blank');
1
ответ дан 24 November 2019 в 16:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: