Html Target Attribute не поддерживается - PullRequest
15 голосов
/ 09 декабря 2010

Я только что заглянул в w3Schools и обнаружил, что он больше не поддерживается ни одним из основных браузеровКраткий поиск в гугле не выявил причину этого?Стоит ли избегать использования цели все вместе?

Ответы [ 7 ]

9 голосов
/ 09 декабря 2010

target атрибут поддерживается всеми браузерами.

Он был удален из HTML4 Strict и XHTML 1 Strict, потому что они не допускают фреймы, и потому что форсируют новые окнадля пользователей это не всегда хорошая идея (например, кнопка «Назад» в новом окне будет отключена, что смущает некоторых пользователей).

target был добавлен обратно в HTML5.Вы можете использовать его, но не злоупотребляйте им.

Это нормально, если вы хотите открыть страницу справки в новом окне на странице, которая имеет длинную форму (вы не хотите, чтобы пользователи теряли содержимое формы), но это не нормально, чтобы заставить каждую ссылку в новойокно в надежде, что это сделает вашу страницу труднее оставить.

И, пожалуйста, не пытайтесь проверять чит-коды, используя скрипты для открытия новых окон.Это дает тот же самый отрицательный эффект пользователям (или даже хуже, если он ломается, когда JS отключен), но его труднее обнаружить и контролировать, чем target.

Кстати: пожалуйста, не относитесь к W3Schools как к авторитетным.Они никак не связаны с W3C, и их учебники часто содержат ошибки.

7 голосов
/ 09 декабря 2010

Он был кратко удален из html5, но они вернули его обратно. Не стесняйтесь продолжать использовать его, поскольку все браузеры должны его поддерживать.

См. http://www.w3schools.com/tags/tag_a.asp ... Вы увидите, что целевой атрибут все еще поддерживается там.

1 голос
/ 09 декабря 2010

Это все еще разрешено в обычном HTML и переходном xHTML, но больше не в строгом xHTML.Идея заключалась в том, что пользователям нравится выбирать для себя, как открыть ссылку, а не навязывать ее браузером.

0 голосов
/ 29 октября 2014
$(function () {
    $("a").attr("target","_blank");
});
0 голосов
/ 09 декабря 2010

Это поддерживается большинством основных браузеров.Это просто не является частью строгих спецификаций HTML от W3C.Тем не менее, браузеры реализуют его даже при использовании строгого типа документа.Этот факт иногда используется для эмуляции его поведения с помощью JavaScript, в то же время сохраняя HTML, который все еще проверяет:

    <a href="http://www.google.com" rel="external">This is an external link</a>

И:

var links = document.getElementsByTagName('a');
for(var i=0, len=links.length; i<len; i++){
    var a = links[i];
    if(a.getAttribute('href') && a.getAttribute('rel')=='external'){
        a.target='_blank';
    }
}

В переходных типах документов обходного пути не требуется.

0 голосов
/ 09 декабря 2010

Я пошел в w3School и обнаружил, что целевой атрибут больше не считается устаревшим в HTML5.

0 голосов
/ 09 декабря 2010
...