Николаев Виталий
Блог веб-разработчика: Битрикс, PHP, Python, Linux и SEO
Битрикс Битрикс
12.03.2022

Битрикс открыть пункт меню в новой вкладке

Иногда в меню 1С-Битрикс нужно открыть ссылку в новой вкладке браузера.

Например:

  • внешние сайты;
  • документы;
  • личные кабинеты;
  • сервисы;
  • CRM;
  • админки;
  • партнерские ссылки.

Для этого достаточно добавить:

target="_blank"

Пример файла меню

Пример файла:

.menu.php

с открытием пункта меню в новой вкладке:

<?
$aMenuLinks = Array(

   Array(
      "Пункт меню",
      "/company/test/",
      Array(),
      Array(),
      ""
   ),

   Array(
      "Пункт меню с target=_blank",
      '/company/test2/" target=_blank',
      Array(),
      Array(),
      ""
   )

);
?>

Как это работает

Битрикс формирует HTML-ссылку на основе массива:

$aMenuLinks

И в URL можно добавить:

" target=_blank

В результате ссылка будет открываться в новой вкладке браузера.

В своих проектах я использую серверную инфраструктуру Timeweb Cloud

VPS и облачные решения для стабильной работы сайтов на PHP и 1С-Битрикс — от корпоративных сайтов до интернет-магазинов и высоконагруженных веб-проектов.

Перейти на Timeweb Cloud
Реклама · ERID: CQH36pWzJqVJ4YD9t5y227AkMQdhpG2THarwRmX2g9tS8x

Какой HTML получится

В итоге Битрикс сгенерирует примерно такой код:

<a href="/company/test2/" target="_blank">
    Пункт меню
</a>

Более правильный способ

Однако такой способ считается «хаком», потому что атрибут внедряется прямо в URL.

Более правильный вариант — использовать дополнительные параметры меню:

<?
$aMenuLinks = Array(

   Array(
      "Пункт меню",
      "/company/test/",
      Array(),
      Array(),
      ""
   ),

   Array(
      "Пункт меню с target=_blank",
      "/company/test2/",
      Array(),
      Array(
         "TARGET" => "_blank"
      ),
      ""
   )

);
?>

Почему второй способ лучше

Такой вариант:

  • чище;
  • безопаснее;
  • понятнее;
  • не ломает URL;
  • лучше поддерживается шаблонами меню.

Важно про шаблон меню

Чтобы параметр:

"TARGET" => "_blank"

работал, шаблон меню должен выводить этот атрибут.

Например:

<a
    href="<?= $arItem["LINK"] ?>"
    target="<?= $arItem["PARAMS"]["TARGET"] ?>"
>
    <?= $arItem["TEXT"] ?>
</a>

Добавляем rel для безопасности

Для внешних ссылок желательно также добавить:

rel="noopener noreferrer"

Пример:

<a
    href="/company/test2/"
    target="_blank"
    rel="noopener noreferrer"
>
    Ссылка
</a>

Когда использовать target="_blank"

  • внешние сайты;
  • документы PDF;
  • CRM;
  • админки;
  • сервисы партнеров;
  • карты;
  • сторонние платформы.

Когда лучше не использовать

Для внутренней навигации сайта обычно лучше открывать ссылки в текущей вкладке, чтобы не ухудшать UX.

Итог

Для открытия пункта меню в новой вкладке в Битрикс можно использовать:

target="_blank"

Быстрый способ — добавить атрибут прямо в URL, но более правильный вариант — передавать TARGET через параметры меню.

235 просмотров

Если возникли сложности

Помогу разобраться с настройкой, исправить ошибки и реализовать решение под ваш проект.

Поддержка сайтов на 1С-Битрикс

Поддержка сайтов на 1С-Битрикс: быстрое решение ошибок, консультации, обучение сотрудников и сопровождение сайта. 
Резервирую время под ваш проект для оперативной помощи и стабильной работы сайта.
Подробнее
Где заказы?

Почему один сайт стабильно приносит заявки, а другой годами просто «висит в интернете»?

В телеграм-канале «Где заказы?» я разбираю реальные ошибки бизнеса, SEO, сайты, рекламу, воронки продаж и показываю, почему компании теряют клиентов и как это исправить.

Без инфоцыганства и мотивационных цитат — только практика, кейсы и рабочие решения для бизнеса и веб-разработки.

Комментарии

Где заказы?
Почему у одних компаний очередь из клиентов, а у других пустой сайт и тишина?
Телеграм канал «Где заказы?» — про продажи, сайты и ошибки бизнеса на реальных примерах. Подписаться