12

До сегодняшнего дня мне интересно, почему target="_blank" не стал target="blank" . Я уверен, что браузеры также могут это понять.

Существуют ли какие-либо исторические или технические причины для этого решения / спецификации?

1 ответ1

18

Если вы должны были использовать target="blank" Ваша ссылка откроется в новом окне / окна. Однако есть небольшая разница. Повторное нажатие на ссылку приведет к повторному использованию окна, которое было открыто в первый раз, вместо открытия нового.

Это связано с тем, что target атрибут может использоваться не только для открытия нового окна. Он имеет четыре встроенных значения, но также позволяет вам указать свою цель. Если вы посмотрите на соответствующую страницу W3 Schools, она показывает следующие опции:

  • _blank Открывает связанный документ в новом окне или вкладке
  • _self Открывает связанный документ в том же фрейме, в котором он был нажат (по умолчанию)
  • _parent Открывает связанный документ в родительском фрейме.
  • _top Открывает связанный документ в полном теле окна
  • <framename> Открывает связанный документ в именованном фрейме

Многое из этого не имеет смысла, если вы не понимаете немного о фреймах HTML. Использование HTML- <frameset> позволяет разбить окно браузера на отдельные разделы (фреймы), каждый из которых имеет свою страницу. Задавая имя фрейма и используя атрибут target в ваших ссылках, можно контролировать, какой фрейм должен отображать соответствующий контент.

Но есть некоторые дополнительные правила для целевого атрибута, которые должны применять браузеры:

  • Если целью является указанное пользователем имя, оно должно начинаться с буквы (без подчеркивания, цифр и т.д.)
  • Если целью является указанное пользователем имя, но ни одно из фреймов / окон не соответствует этому имени, то создайте новую вкладку / окно с этим именем. Вот почему target="blank" работает так, как работает.

По сути, нет причин менять текущее соглашение, поскольку _blank является особым случаем. Исходный тип фреймов может больше не использоваться, но есть и другие случаи, когда вы можете иметь именованные объекты, с которыми работает целевой атрибут, например, фреймы, которые представляют собой отдельные фреймы, встроенные непосредственно в страницу. Изменение стандарта сломало бы многие существующие страницы без какой-либо выгоды.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .