На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Взаимодействие со сторонним JS-скриптом

Поиск  Пользователи  Правила  Войти
Форум » Серверные приложения » GIS WebToolKit
Страницы: 1 2 След.
RSS
Взаимодействие со сторонним JS-скриптом, Способы взаимодействия пользовательских скриптов внутри WebToolKit и скриптов на других страницах.
 
Входные данные задачи: динамическая веб-страница, внутри которой определены элементы div, один из которых содержит JS-скрипт c "пользовательскми" функционалом (пусть его id="custom"), и другой div, содержащий полностью GIS (карту) (id="gis"). Все по-отдельности работает.

Необходимо организовать следующее взаимодействие: при выборе объекта на карте и нажатии определенной кнопки (или выполнении определенных действий) внутри div с id=="gis" вызвать JS-функцию внутри div с id=="custom"?
 
Цитата
Алексей Доронин написал:
Входные данные задачи: динамическая веб-страница, внутри которой определены элементы div, один из которых содержит JS-скрипт c "пользовательскми" функционалом (пусть его id="custom"), и другой div, содержащий полностью GIS (карту) (id="gis"). Все по-отдельности работает.Необходимо организовать следующее взаимодействие: при выборе объекта на карте и нажатии определенной кнопки (или выполнении определенных действий) внутри div с id=="gis" вызвать JS-функцию внутри div с id=="custom"?
Добрый день!
Для отслеживания событий карты (в том числе выбор объекта), необходимо создать свой компонент. Далее, в главном файле компонента в теле метода onSelectObjects, можно вызвать внешнюю пользовательскую функцию.
Создание компонента описано в разделе "8.1.6 Разработка компонента" документации https://gistoolkit.com/download/doc/giswebtoolkitse.pdf
 
Цитата
Елена Кузнецова написал:
Цитата
Алексей Доронин написал:
Входные данные задачи: динамическая веб-страница, внутри которой определены элементы div, один из которых содержит JS-скрипт c "пользовательскми" функционалом (пусть его id="custom"), и другой div, содержащий полностью GIS (карту) (id="gis"). Все по-отдельности работает.Необходимо организовать следующее взаимодействие: при выборе объекта на карте и нажатии определенной кнопки (или выполнении определенных действий) внутри div с id=="gis" вызвать JS-функцию внутри div с id=="custom"?
Добрый день!
Для отслеживания событий карты (в том числе выбор объекта), необходимо создать свой компонент. Далее, в главном файле компонента в теле метода onSelectObjects, можно вызвать внешнюю пользовательскую функцию.
Создание компонента описано в разделе "8.1.6 Разработка компонента" документации  https://gistoolkit.com/download/doc/giswebtoolkitse.pdf

Здравствуйте!
По событиям понятно. Но каким образом взаимодействовать с DOM?
 
Цитата
Алексей Доронин написал:
Здравствуйте!
По событиям понятно. Но каким образом взаимодействовать с DOM?
Здравствуйте!
Подскажите,  что подразумевается под "взаимодействовать с DOM"?
Взаимодействие с DOM-деревом осуществляется стандартными методами.
 
Цитата
Дмитрий Науменко написал:
Цитата
Алексей Доронин написал:
Здравствуйте!
По событиям понятно. Но каким образом взаимодействовать с DOM?
Здравствуйте!
Подскажите,  что подразумевается под "взаимодействовать с DOM"?
Взаимодействие с DOM-деревом осуществляется стандартными методами.

Т. е., имея:
Код
<div id="custom">
    <sc ript>
        function someFunc()
        {
        }
    </sc ript>
</div>

и

Код
<div id="gis">
    <!-- Здесь интегрированный GISWebToolKit и вызов из него someFunc(); -->
</div>

все это будет работать?
 
Цитата
Алексей Доронин написал:
все это будет работать?

Да, пользовательская функция попадает в глобальную область видимости и может быть вызвана из любой части программы.
Так же, можно явно проинициализировать функцию в объекте window - window.someFunc = function () { }.
Изменено: Дмитрий Науменко - 11.07.2024 16:39:09
 
Цитата
Дмитрий Науменко написал:
Цитата
Алексей Доронин написал:
все это будет работать?

Да, пользовательская функция попадает в глобальную область видимости и может быть вызвана из любой части программы.
Так же, можно явно проинициализировать функцию в объекте window - window.someFunc = function () { }.

Большое спасибо!
 
Цитата
Елена Кузнецова написал:
можно вызвать внешнюю пользовательскую функцию
В своем компоненте элемент <div id="custom"> я найду, вызвав const el = document.getElementById('custom');
а someFunc() как правильно вызвать? и как имитировать наличие <div id="custom"> в режиме разработки?
 
Здравствуйте!

В режиме разработки можно поместить <div id="custom"> в файл publuc/index.html.
Вызов функции можно осуществить, вызвав ее у объекта window -  window.someFunc = function () { }, затем вызвать window.someFunc().
Изменено: Дмитрий Науменко - 15.07.2024 11:58:04
 
Вот так получилось вызвать из основного .ts функцию getObject, находящуюся в index.html:
Код
declare var getObject:any;
...
try{          
 getObject( --параметры-- );
}catch (e: any){
 console.log(e);
}
Теперь обратная задача. Стартовать мой компонент из скрипта в index.html.
Изменено: Валерий Парусов - 16.07.2024 05:23:15
Страницы: 1 2 След.
Читают тему (гостей: 1)



© КБ Панорама, 1991-2025

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности