Я сделал это, используя 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 вызовов, после взаимодействия с пользователем и т.д.)
Я думаю, вы можете использовать селектор a [href], что означает любой '' с непустым атрибутом 'href'. Возможно, вам захочется больше работать, чтобы исключить ссылки на странице, такие как ''. –
@ Эрик: Я уверен, что он игнорирует любые 'href', которые не содержат ': //'. –
Правда. Я по-прежнему считаю, что селектор «a [href]» лучше. –