Доброго времени суток.
Интересует следующий вопрос: к примеру, на страницу нужно подключить какой-либо jQuery плагин. Если точнее, речь идёт вот об этом сервисе https://dadata.ru/suggestions/usage/#address но это сейчас не важно.
Суть вот в чём: допустим, необходимо привязать действие к какому-либо элементу (например, полю) по id в DOM. Но страница генерится динамически, соответственно, подключать привязку нужно после того, как она загружена. Есть ли какой-либо метод, отслеживающий полное завершение инициализации, то есть момент, когда уже все элементы на странице загружены и доступны (поля, кнопки и т.д.) ? init, onEntityInitialized в этом случае, насколько я замечал, не подходят.
Версия 7.9, если что.
Нравится
Здравствуйте, Денис.
Отловить момент полной загрузки карточки невозможно. Данное поведение связано с тем, что, начиная с версии 7.8, часть элементов карточки загружается асинхронно (табы, детали) отдельно от самой карточки. В целом, наиболее подходящим методом будет замещение метода onEntityInitialized и добавления логики после вызова this.callParent(arguments); В данный момент основные элементы страницы (edit-ты итд) уже загружены и доступны через document.getElementById
Илья, спасибо! Уже сам более-менее отследил, что onEntityInitialized всё же работает :)
Чтобы не создавать новых тем, задам здесь же вопрос- может быть, где-нибудь уже обсуждалось само подключение плагинов jQuery? Имеется в виду интеграция в систему.
Ну то есть, если я например, создам модуль вида:
define("UsrPlugin", ["jQuery"], function() { //Текст плагина из js файла, вроде этого https://cdn.jsdelivr.net/jquery.suggestions/16.10/js/jquery.suggestions.min.js });
и добавлю jQuery в dependecies модуля, смогу ли я подключить потом этот модуль, и добавлять скрипт к нужному полю по id?
Денис, если правильно понял, то клиентские библиотеки подключаются как обычные JS модули, созданием в конфигурации схемы модуля на языке javascript. С описанием там логики через define, и использованием в других схемах через require. Пример в конфигурации, схема jQuery.
Также поищите в топиках:
- http://www.community.terrasoft.ru/forum/topic/20454
- http://www.community.terrasoft.ru/forum/topic/22101