Открытие нового окна браузера через ссылку без JavaScript
Быстрый ответ
Для того чтобы открывать ссылку в новом окне, а не в отдельной вкладке, применяйте атрибут target
со значением _blank
к элементу <a>
. Затем определите параметры окна с помощью события onclick
. Вот как это выглядит на JavaScript:
<a href="javascript:void(0);" onclick="window.open('https://www.example.com', 'newWin', 'width=500, height=300');">Открыть в новом окне</a>
Такой код откроет URL https://www.example.com
в новом окне с размерами 500x300 пикселей. Учтите, что на поведение ссылки могут влиять блокировщики всплывающих окон и пользовательские настройки браузера.
Работа с блокировщиками всплывающих окон
Блокировщики всплывающих окон, встроенные в большинство браузеров, могут мешать работе метода window.open()
. Пользуясь случаем, предупредите пользователей о том, что для нормальной работы вашего сайта потребуется разрешить всплывающие окна или предложите иной вариант навигации.
Понимание поведения браузеров
Как браузер будет интерпретировать атрибут target="_blank"
, во многом зависит от того, каким способом он выбирает обработать этот атрибут. Обычно новая вкладка открывается вместо нового окна. Браузеры, например, Chrome и Firefox, предпочитают использовать вкладки с тем, чтобы повысить удобство работы с пользовательским интерфейсом. Изменить это поведение браузера с помощью чистого HTML невозможно. Однако с помощью JavaScript можно определить параметры открываемого окна.
Согласованность работы в разных браузерах
Существует множество браузеров и платформ, на которых должен корректно функционировать метод window.open()
. Важно учесть и специфику работы этого метода на мобильных устройствах, где поддержка окон может быть ограничена. Исследуйте поведение метода в разных системах, чтобы обеспечить стабильный пользовательский опыт.
Визуализация
<!-- Обойдём систему: вместо новой вкладки откроем новое окно! -->
<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
для открытия новых контекстов просмотра. Это делает его использование более безопасным и соответствующим современным требованиям.
Полезные материалы
- <a>: Элемент якоря – HTML: HyperText Markup Language | MDN
- HTML a target Attribute
- javascript – Открыть URL в новой вкладке (а не новом окне) – Stack Overflow
- When to Use target="_blank" | CSS-Tricks
- HTML Living Standard
- .attr() | jQuery API Documentation
- WebAIM: Links and Hypertext – Link Text and Appearance