В HTML 4.0 Strict и XHTML 1.0 STRICT атрибут target не разрешен в теге <a>, что расстраивает веб-дизайнеров. Его по-прежнему разрешено использовать в переходных спецификациях. Но с помощью определенных методов мы можем решить эту проблему.
Атрибут target был удален из спецификации HTML4.0, но был добавлен еще один атрибут: rel. Этот атрибут используется для указания связи между документом, содержащим ссылку, и связанным документом. Значения его атрибутов (например: следующий, предыдущий, глава, раздел) определены в спецификации. Большинство этих атрибутов используются для определения связей между небольшими частями большого документа. Фактически спецификация позволяет разработчикам свободно использовать нестандартные значения свойств для конкретных приложений.
Здесь мы используем пользовательское значение external для атрибута rel, чтобы пометить ссылку для открытия нового окна.
Код ссылки, не соответствующий новейшим веб-стандартам:
<a href="document.html" target="_blank">внешняя ссылка</a>
Используйте атрибут rel:
<a href="document.html" rel="external">внешняя ссылка</a>
Теперь, когда мы создали ссылку на новое окно, соответствующую веб-стандартам, нам также необходимо использовать JavaScript для реализации нового окна. Скрипт хочет найти все гиперссылки в документе, которые мы определяем как rel="external" при загрузке веб-страницы.
Для начала нам нужно определиться с браузером
if (!document.getElementsByTagName) return;
getElementsByTagName — это простой в использовании метод стандарта DOM1, и сейчас он поддерживается большинством браузеров. Поскольку некоторые старые браузеры, такие как Netscape 4 и IE4, не поддерживают DOM1, мы должны исключить его, определив, существует ли этот метод. эти старые версии браузеров.
Далее мы получаем все теги <a> в документе с помощью метода getElementsByTagName:
var якоря = document.getElementsByTagName("a");
Якоря назначаются в виде массива, содержащего каждый тег <a>. Теперь мы должны просмотреть каждый тег <a> и изменить его:
for (var i=0; i <anchors.length; i++) {
вар якорь = якоря;
Найдите тег <a>, в котором вы хотите открыть новое окно.
если (anchor.getAttribute("href") &&
якорь.getAttribute("rel") == "внешний")
Затем создайте целевое значение атрибута и присвойте ему значение «_target».
якорь.target = "_blank",
Полный код:
функция externalLinks() {
if (!document.getElementsByTagName) return;
var якоря = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
вар якорь = якоря;
если (anchor.getAttribute("href") &&
якорь.getAttribute("rel") == "внешний")
anchor.target = "_blank";
}
}
window.onload = внешние ссылки;