Ссылки и режим ajax в компонентах

Разработчики 1с-Битрикс максимально упростили использование режима ajax в своем продукте — все подходящие элементы (ссылки, кнопки форм и т.д) в шаблоне компонента автоматически дополняются javascript-обработчиками. Иногда же возникает необходимость «отменить» ajax для какой-либо ссылки. Сейчас я рассмотрю несколько способов, как такое можно реализовать.

Переход по ссылке будет осуществлен без технологии ajax, если выполнено одно из условий:

1. Наличие внутри тега <a> атрибутов «onclick» и «target». Отмечу, что target для ссылок делает невалидным документ в doctype strict

2. Если содержимое атрибута «href» начинается с:
- символа #, т.е. является якорем
- mailto: — является адресом e-mail
- javascript: — является скриптом или его вызовом

3. Ссылка содержит символы :// — подойдет любая абсолютная ссылка

4. Ссылка ведет на страницу, отличную от страницы вызова компонента. Правило действует с учетом ЧПУ. Например, если в разделе /news/ лежит комплексный новостной компонент, настроенный на ЧПУ с кодами секций и элементов, то любая ссылка /news/word1/word2/ будет обрабатываться в режиме ajax, т.к. «реальный» адрес страницы — /news/index.php?..

Информация почерпнута из исходных кодов файла component_ajax.php. Найти его можно в каталоге /bitrix/modules/main/classes/general/

Если вам понравилась статья, подписывайтесь на обновления блога по rss или присоединяйтесь в twitter

Поделиться ссылкой с друзьями:

Метки: , ,

Категории: Bitrix

Комментарии (2)

  1. Владимир:

    Алексей, вы бы привели примеры с работающими компонентами.
    Например интересует компонент регистрация или авторизация. С аякс уведомлениями о заполнености полей и аякс уведомлением об успешной регистрации.