Часто при просмотре блогов мы видим ссылки вида:
<a rel="external nofollow" href="http://seditio.by/page.php?al=cotonti">
CMF Cotonti
</a>
Если с атрибутом nofollow все понятно, то external часто вызывает недоумение и вопросы.
Все дело в том, что спецификация XHTML не поддерживает атрибут ссылки target. Поскольку открытие нового окна в браузере — это задача сценария, а не языка гипертекстовой разметки, конструкции вида
target="_blank"
более не являются валидными.
Итак, "искусственный" атрибут
rel="external"
служит только и исключительно для того, чтобы, обрабатывая его скриптом, назначать таким ссылкам класс и открывать их в новом окне браузера. Интересно, что в огромном количестве блогов этот атрибут заботливо проставлен во всех внешних линках, но скрипты их не обрабатывают. Очевидно потому, что удачные решения отсутствуют. Посему, публикуем свое:
function externalLinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") {
anchor.target = "_blank";
anchor.className = "external";
anchor.title = "Opens in new window"
}
}
}
window.onload = externalLinks;
Заинтересовались? Звоните нам по телефонам +375 (29) 774-35-89 и +375 (44) 774-35-89 в Минске. Мы будем рады помочь Вам в реализации Вашего проекта.
1. Qwerter @ 2 мар 2010 г. в 18:14