HTML - Історична чи технічна причина для target = "_ blank" з підкресленням?


14

До сьогодні мені цікаво, чому target="_blank"не стала target="blank". Я впевнений, що і браузери це могли зрозуміти.

Чи є якісь історичні чи технічні причини цього рішення / специфікації?


Вся targetконцепція, хоча вона все ще дозволена в HTML 5, як правило, вважається застарілою. w3.org/community/webed/wiki/HTML_links_-_lets_build_a_web7 Frames and popups — just say noрозділі)
Jens Mühlenhoff

1
Чи може хтось пояснити мені, чому це питання не було перенесено на StackOverflow на цей сайт? Це ідеальний вибір для SO та дуже слабкий для SU - на мій погляд.
трейдер

Відповіді:


21

Якщо ви повинні були використовувати target="blank"ваше посилання буде відкриватися в новому вікні / вікні. Однак є тонка різниця. Повторне натискання на посилання знову використовуватиме вікно, яке було відкрито вперше замість відкриття нового.

Це тому, що targetатрибут можна використовувати для більш ніж просто відкриття нового вікна. Він має чотири вбудовані значення, але також дозволяє вказати власну ціль. Якщо ви переглянете відповідну сторінку W3 Schools, вона відображає такі варіанти:

  • _blank Відкриває зв'язаний документ у новому вікні чи вкладці
  • _self Відкриває зв'язаний документ у тому ж кадрі, на який було натиснуто (це за замовчуванням)
  • _parent Відкриває зв'язаний документ у батьківському кадрі
  • _top Відкриває зв'язаний документ у повному корпусі вікна
  • <framename> Відкриває зв'язаний документ у названому кадрі

Багато з цього не має сенсу, якщо ви трохи не зрозуміли кадри HTML. Використання HTML- <frameset>тега дозволяє розділити вікно браузера на окремі розділи (кадри), кожен із яких має власну сторінку. Давши ім'я кадру та використовуючи targetатрибут у своїх посиланнях, можна контролювати, який кадр повинен відображати відповідний вміст.

Але є кілька додаткових правил для цільового атрибута, які браузери повинні застосовувати:

  • Якщо ціль - ім'я, визначене користувачем, воно повинно починатися з літери (без підкреслення, цифр тощо)
  • Якщо цільовим є ім'я, визначене користувачем, але жоден кадр / вікно не відповідає цьому імені, тоді створіть нову вкладку / вікно, використовуючи це ім'я. Ось чому target="blank"працює так, як це робиться.

В основному немає жодних підстав для зміни чинної конвенції, оскільки _blankце особливий випадок. Оригінальний тип кадрів більше не можна використовувати, але є й інші випадки, коли ви можете назвати об'єкти, з якими працює цільовий атрибут, наприклад, рамки кадрів, які є єдиними кадрами, вбудованими безпосередньо у сторінку. Зміна стандарту розбиває багато існуючих сторінок, не даючи жодної користі.


7
Ви не повинні посилатися на W3Schools: w3fools.com
Jens Mühlenhoff

2
Я не погоджуюся з тим, що W3Schools не найкраще для керівних принципів веб-дизайну або використання посилань із цільовим атрибутом застаріло. Однак я використовував цю інформацію, щоб конкретно відповісти на початкове запитання.
Джеймс П

1
Я думаю, що посилання на ресурси, які, як відомо, є проблематичними, не є хорошою ідеєю. Ви відповідаєте просто добре.
Єнс Мюленхофф

1
Я хотів би, щоб додатковий target="_blank"атрибут не знадобився, але натомість ми могли просто додати знак до URL-адреси, наприклад, зірочку <a href="*https://www.stackoverflow.com">Stackoverflow</a>. Це врятувало б стільки набравши :)
Кай Ноак
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.