![HTML — Историческая или техническая причина использования target="_blank" с подчеркиванием?](https://rvso.com/image/1395403/HTML%20%E2%80%94%20%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F%20%D0%B8%D0%BB%D0%B8%20%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BF%D1%80%D0%B8%D1%87%D0%B8%D0%BD%D0%B0%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20target%3D%22_blank%22%20%D1%81%20%D0%BF%D0%BE%D0%B4%D1%87%D0%B5%D1%80%D0%BA%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC%3F.png)
До сих пор удивляюсь, почему target="_blank"
не стало target="blank"
. Уверен, браузеры тоже могли бы это понять.
Существуют ли какие-либо исторические или технические причины для этого решения/спецификации?
решение1
Если бы вы использовали target="blank"
вашу ссылкуволяоткрыть в новой вкладке/окне. Однако есть тонкое различие. Повторный щелчок по ссылке повторно использует окно, которое было открыто в первый раз, вместо открытия нового.
Это потому, что target
атрибут может использоваться не только для открытия нового окна. Он имеет четыре встроенных значения, но также позволяет вам указать свою собственную цель. Если вы посмотрите на соответствующиеСтраница школ W3он показывает следующие варианты:
_blank
Открывает связанный документ в новом окне или вкладке_self
Открывает связанный документ в том же фрейме, в котором он был нажат (это значение по умолчанию)_parent
Открывает связанный документ в родительском фрейме._top
Открывает связанный документ в полном тексте окна.<framename>
Открывает связанный документ в именованном фрейме.
Многое из этого не имеет смысла, если вы не понимаете немного о фреймах HTML. Использование <frameset>
тега HTML позволяет вам разделить окно браузера на отдельные разделы (фреймы), каждый со своей собственной страницей. Давая фрейму имя и используя атрибут target
в ваших ссылках, можно контролировать, какой фрейм должен отображать соответствующий контент.
Но есть некоторые дополнительные правила для атрибута target, которые должны применять браузеры:
- Если целью является указанное пользователем имя, то оно должно начинаться с буквы (без подчеркивания, цифр и т. д.)
- Если цель — указанное пользователем имя, но ни один фрейм/окно не соответствует этому имени, то создайте новую вкладку/окно, используя это имя. Вот почему это
target="blank"
работает так, как это работает.
В принципе, нет смысла менять текущую конвенцию, поскольку _blank
это особый случай. Исходный тип фреймов может больше не использоваться, но есть и другие случаи, когда вы можете иметь именованные объекты, с которыми работает атрибут target, например, iframes, которые являются отдельными фреймами, встроенными непосредственно в страницу. Изменение стандарта сломает множество существующих страниц, не давая никакой выгоды.