2013-04-07 8 views
3

Я хочу, чтобы все исходящие ссылки на моем сайте открывались на новой вкладке с помощью простого кода <header>. Я знаю, что вы можете заставить все ссылки, чтобы открыть в новой вкладке с этим кодом в <header> тег:Как настроить только исходящие ссылки в HTML

<base target='_blank' /> 

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

ответ

4

Я сделал это, используя Javascript на своем сайте. Мне было проще анализировать все мои ссылки при загрузке страницы и программно добавлять целевой объект _blank вместо того, чтобы вручную добавлять атрибут к ссылкам. (Bonus: фальсификация с атрибутом target в JS позволяет ваш код validate)

Я использовал JQuery на моем сайте, но логика довольно проста:

$(document).ready(function() 
{ 
    parseLinks(); 
}); 

function parseLinks() 
{ 
    // Manage external links 
    $("a").each(function() 
    { 
     if ($(this).attr("href").indexOf("://") >= 0) 
     { 
      $(this).attr("target", "_blank"); 
     } 
    }); 
} 

Если вы не хотите использовать JQuery:

window.onload = function() 
{ 
    parseLinks(); 
}; 

function parseLinks() 
{ 
    // Manage external links 
    var Links = document.getElementsByTagName("a"); 
    for (var i = 0; i < Links.length; i++) 
    { 
     if (Links[i].href.indexOf("://") >= 0) 
     { 
      Links[i].target = "_blank"; 
     } 
    } 
} 

Я положил его в функцию, так что вы можете вызвать parseLinks всякий раз, когда вам нужно повторно запустить код (AJAX вызовов, после взаимодействия с пользователем и т.д.)

Смежные вопросы