Разбираемся с rel external

Спецификация XHTML не поддерживает атрибут ссылки target, и открытие нового окна в браузере становится задачей сценария, а не языка гипертекстовой разметки

Внешние ссылки при помощи rel external

Часто при просмотре блогов мы видим ссылки вида:

<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 комментарий к посту «Разбираемся с rel external»
  • Аватар

    1. Qwerter @ 2 мар 2010 г. в 18:14

    Просто и доступно! Спасибо!

Новый комментарий

Для редактирования комментария осталось 10 минут