Завершение загрузки страницы - как отследить?

Доброго времени суток.

Интересует следующий вопрос: к примеру, на страницу нужно подключить какой-либо jQuery плагин. Если точнее, речь идёт вот об этом сервисе https://dadata.ru/suggestions/usage/#address но это сейчас не важно.

Суть вот в чём: допустим, необходимо привязать действие к какому-либо элементу (например, полю) по id в DOM. Но страница генерится динамически, соответственно, подключать привязку нужно после того, как она загружена. Есть ли какой-либо метод, отслеживающий полное завершение инициализации, то есть момент, когда уже все элементы на странице загружены и доступны (поля, кнопки и т.д.) ? init, onEntityInitialized в этом случае, насколько я замечал, не подходят.

Версия 7.9, если что.

Нравится

4 комментария

Здравствуйте, Денис.

Отловить момент полной загрузки карточки невозможно. Данное поведение связано с тем, что, начиная с версии 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

Илья, спасибо.

Пока сделали немного по другому.

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