Николаев Виталий
Блог веб-разработчика: Битрикс, 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

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

Какой 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 через параметры меню.

25 просмотров

Комментарии

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