ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70%Забронировать скидку

Открытие нового окна браузера через ссылку без JavaScript

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для того чтобы открывать ссылку в новом окне, а не в отдельной вкладке, применяйте атрибут target со значением _blank к элементу <a>. Затем определите параметры окна с помощью события onclick. Вот как это выглядит на JavaScript:

HTML
Скопировать код
<a href="javascript:void(0);" onclick="window.open('https://www.example.com', 'newWin', 'width=500, height=300');">Открыть в новом окне</a>

Такой код откроет URL https://www.example.com в новом окне с размерами 500x300 пикселей. Учтите, что на поведение ссылки могут влиять блокировщики всплывающих окон и пользовательские настройки браузера.

Пройдите тест и узнайте подходит ли вам сфера IT
Пройти тест

Работа с блокировщиками всплывающих окон

Блокировщики всплывающих окон, встроенные в большинство браузеров, могут мешать работе метода window.open(). Пользуясь случаем, предупредите пользователей о том, что для нормальной работы вашего сайта потребуется разрешить всплывающие окна или предложите иной вариант навигации.

Понимание поведения браузеров

Как браузер будет интерпретировать атрибут target="_blank", во многом зависит от того, каким способом он выбирает обработать этот атрибут. Обычно новая вкладка открывается вместо нового окна. Браузеры, например, Chrome и Firefox, предпочитают использовать вкладки с тем, чтобы повысить удобство работы с пользовательским интерфейсом. Изменить это поведение браузера с помощью чистого HTML невозможно. Однако с помощью JavaScript можно определить параметры открываемого окна.

Согласованность работы в разных браузерах

Существует множество браузеров и платформ, на которых должен корректно функционировать метод window.open(). Важно учесть и специфику работы этого метода на мобильных устройствах, где поддержка окон может быть ограничена. Исследуйте поведение метода в разных системах, чтобы обеспечить стабильный пользовательский опыт.

Визуализация

HTML
Скопировать код
<!-- Обойдём систему: вместо новой вкладки откроем новое окно! -->

<a href="https://example.com" target="_blank" 
onclick="window.open(this.href, 'newwindow', 'width=300,height=250'); return false;">Пожалуйста, откройте в новом окне!</a>

<!-- Будем вежливы: просим пользователя "Пожалуйста" -->

<!-- P.S. Не забудьте return 'false', чтобы отменить стандартное действие ссылки. Наш секрет ;) -->

В этом примере применяется ловкий трюк из пяти строчек кода. С помощью элемента <a> и события onclick на JavaScript, браузер будет открывать новое окно вместо вкладки.

Оценка вопросов безопасности

При использовании window.open() стоит быть внимательными. Браузеры могут блокировать эту функцию из-за её связи со спамом и другими недобросовестными манипуляциями. Чтобы активировать работу этой функции, часто требуется действие пользователя, например, клик. Это помогает минимизировать нежелательные последствия.

Грамотное использование JavaScript-фреймворков

Хотя window.open() можно использовать с помощью такого фреймворка как jQuery, его основной функционал остается неизменным — эти инструменты лишь упрощают синтаксис, но не предлагают дополнительного контроля или возможности изменить стандартное поведение браузера.

Исторический контекст и современные стандарты

Не забывайте о стандартах HTML5: ранее использовалось target="new" для открытия нового окна, но сейчас рекомендуется использовать _blank для открытия новых контекстов просмотра. Это делает его использование более безопасным и соответствующим современным требованиям.

Полезные материалы

  1. <a>: Элемент якоря – HTML: HyperText Markup Language | MDN
  2. HTML a target Attribute
  3. javascript – Открыть URL в новой вкладке (а не новом окне) – Stack Overflow
  4. When to Use target="_blank" | CSS-Tricks
  5. HTML Living Standard
  6. .attr() | jQuery API Documentation
  7. WebAIM: Links and Hypertext – Link Text and Appearance