Документация для разработчиков
Темная тема

Обработка нажатий ссылок

Метод BX.SidePanel.Instance.bindAnchors задает правила обработки ссылок на странице. В момент нажатия на ссылку, слайдер сравнивает адрес в атрибуте href c зарегистрированными шаблонами. В случае совпадения, соответствующая страница открывается в iframe'е слайдера.

BX.SidePanel.Instance.bindAnchors({
   rules:
   [
		{
			condition: [
				"/company/personal/user/(\\d+)/tasks/task/view/(\\d+)/",
				"/workgroups/group/(\\d+)/tasks/task/view/(\\d+)/",
				"/extranet/contacts/personal/user/(\\d+)/tasks/task/view/(\\d+)/"
			],
			loader: "tasks:view-loader",

			//Игноривать ссылки, содержащие следующие параметры в Query String
			stopParameters: [
				"PAGEN_(\\d+)",
				"MID"
			]
		},
		{
			condition: [
				"/company/personal/user/(\\d+)/tasks/task/edit/0/",
				"/workgroups/group/(\\d+)/tasks/task/edit/0/",
				"/extranet/contacts/personal/user/(\\d+)/tasks/task/edit/0/"
			],
			loader: "tasks:new-loader"
		},
		{
			condition: [ 
				new RegExp("/crm/lead/details/[0-9]+/", "i") 
			],
        	loader: "crm:entity-details-loader"
        },
		{
			condition: [
				"/company/personal/user/(\\d+)/groups/create/"
			],
			loader: "intranet:group-create-loader",
			
			//Опции, с которыми откроется слайдер 
			options: {
				width: 1200
			}
		},
		{
			condition: [
				/\/online\/\?(IM_DIALOG|IM_HISTORY)=([a-zA-Z0-9_|]+)/i
			],

			//Собственный обработчик нажатия на ссылку.
			//Вместо слайдера откроется мессенджер
			handler: function(event, link)
			{
				if (!window.BXIM)
				{
					return;
				}
	
				var type = link.matches[1];
				var id = link.matches[2];
	
				if (type === "IM_HISTORY")
				{
					BXIM.openHistory(id);
				}
				else
				{
					BXIM.openMessenger(id);
				}
	
				event.preventDefault();
			}
		}
   ]
});

BX.SidePanel.Instance.bindAnchors можно вызвать несколько раз. Новые правила будут добавлены к существующим.

Если требуется обрабатывать ссылки на всех страницах сайта, вызов BX.SidePanel.Instance.bindAnchors необходимо перенести в шаблон сайта.

Ссылки внутри iframe'а анализируются по тем же правилам, что и в родительской странице.

Ссылки с data-атрибутом data-slider-ignore-autobinding не обрабатываются.

По соображениям безопасности ссылки на другой домен не открываются в слайдере, однако, это поведение можно отменить опцией allowCrossDomain=true.

Обработка ссылок в мобильных браузерах не производится, отменить это можно опцией mobileFriendly=true.

В параметре options можно указать опции, с которыми откроется слайдер.

Слайдер открывается при совпадении шаблона ссылки и адреса в атрибуте href. Это поведение по умолчанию можно переопределить, указав в опции handler свою функцию-обработчик.



Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2020, «1С-Битрикс», 2020
Наверх