@wiyod

Можно ли автоматически делать target blank для внешних ссылок?

Собственно вопрос. Возможно ли автоматическое поведение для ВСЕХ внешних ссылок target blank, желательно средствами HTML? Кажется был подобный тег в head, который задает такое поведение? Если нельзя HTML, то что посоветуете на JS (это наверное сложнее, т.к. используется Vue, да еще и контент поступает по API как JSON и рендерится через v-html)
  • Вопрос задан
  • 402 просмотра
Решения вопроса 2
PavelMonro
@PavelMonro
Насчет html такого не слышал.
Jquery
$(document).ready(function(){
  $('#content a').attr('target', '_blank');
});

Js
window.onload = function(){
  var anchors = document.getElementById('content').getElementsByTagName('a');
  for (var i=0; i<anchors.length; i++){
    anchors[i].setAttribute('target', '_blank');
  }
}


+ Проверка на домен и добавление:
$('#content a').each(function() {
   var linky = new RegExp('/' + window.location.host + '/');
   if (!linky.test(this.href)) {
      $(this).attr("target","_blank");
   }
});
Ответ написан
0xD34F
@0xD34F Куратор тега JavaScript
Можно повесить обработчик click на корневой элемент: если целевым элементом является ссылка - отменяете действие по умолчанию и открываете новое окно вручную:

<div id="app" @click="onClick">
  ...

new Vue({
  el: '#app',
  methods: {
    onClick(e) {
      if (e.target.tagName === 'A') {
        e.preventDefault();
        window.open(e.target.getAttribute('href'));
      }
    },
    ...
  },
  ...
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы