powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / HTML'ный комбобокс
10 сообщений из 10, страница 1 из 1
HTML'ный комбобокс
    #40138201
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Мое почтение всем. Попробую задать вопрос. Я открываю из Аксесса HTML - примерно так:
Код: VBA
1.
2.
3.
4.
5.
Dim w As WebBrowser
Global oDocument As MSHTML.HTMLDocument
Set w = Forms!f!w.Object
w.Navigate2 "http..."
Set oDocument = w.Document
До этого момента всё работает, я этим способом пользуюсь регулярно и делаю разные вещи. Сейчас я работаю с сайтом, на котором есть два комбобокса, и если я в первом из них меняю значение, то у второго меняется список. Так ведет себя сайт, когда я обращаюсь к нему вручную. Сейчас я пытаюсь сделать то же самое программно, но почему-то список у второго комбобокса не меняется.
Код: VBA
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Dim oCombo1 As Object, oCombo2 As Object
Set oCombo1 = oDocument.all.tags("select")(0)
Set oCombo2 = oDocument.all.tags("select")(1)
Dim v As Variant
For Each v In oCombo1.options
    oCombo1.Value = v.Value 'вариант 1'
    v.Selected = True 'вариант 2'
    oCombo1.Click 'это тоже пробовал'
    oCombo1.FireEvent "onclick" 'и это тоже пробовал'
    DoEvents
    Debug.Print oCombo1.innerHTML
    Debug.Print oCombo2.innerHTML
Next
Вот начало первого комбобокса:
Код: HTML
1.
<select class="form-control ng-valid ng-dirty ng-valid-parse ng-touched" ng-model="currentTubeLine" ng-options="line.name for line in lines">
Я уже нагуглил, что префикс "ng-" значит, что это Angular, но это мне никак не помогает. Я ищу, как программно сделать Click, чтобы отработало его событие (полагаю, что обработчик находится на сервере, поэтому я его не вижу).
...
Изменено: 05.11.2023, 17:27 - Владимир Саныч
Рейтинг: 0 / 0
HTML'ный комбобокс
    #40138229
osmor_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч [игнорируется] 

oDocument.parentWindow.execScript не поможет?
Хотя не уверен что WebBrowser object умеет в TypeScript
...
Рейтинг: 0 / 0
HTML'ный комбобокс
    #40138230
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
osmor_new [игнорируется] 

execScript - а дальше?
...
Рейтинг: 0 / 0
HTML'ный комбобокс
    #40138231
osmor_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч [игнорируется] 

дальше js функция которая вызывается по Click.
Я так вызывал функцию сортировки таблицы, но то был пуре js
Не уверен что здесь подойдет, не силен в Angular
ng-model="currentTubeLine" - привязывает поле к данным приложения Angular
ng-options="line.name for line in lines" - собственно заполняет список для комбо.
Возможно изменение значения комбо вообще не по клику обрабатывается, а изменением состояния currentTubeLine. За состоянием наблюдает приложение Angular. Как его дернуть и заставить MSHTML.HTMLDocument на это отреагировать я ХЗ. Сори.
А что написано в ng-options второго комбо?
...
Рейтинг: 0 / 0
HTML'ный комбобокс
    #40138238
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
osmor_new  15.11.2023, 12:58
[игнорируется]
дальше js функция которая вызывается по Click.
Дык, я же привел его HTML (в самом первом сообщении). Там нет никаких событий, поэтому я подозреваю, что обработчик находится на сервере.
osmor_new  15.11.2023, 12:58
[игнорируется]
А что написано в ng-options второго комбо?
Вот его начало. То, что написано в ng-options, выглядит как комментарий.
Код: HTML
1.
<select class="form-control ng-valid ng-touched ng-dirty ng-valid-parse" ng-show="currentTubeLine" ng-model="currentTubeLineStation" ng-options="station.name for station in currentTubeLineList">
...
Рейтинг: 0 / 0
HTML'ный комбобокс
    #40138239
Фотография RePredeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч  17.11.2023, 14:04
[игнорируется]
я же привел его HTML (в самом первом сообщении). Там нет никаких событий
Ивенты в JS описываются существенно чаще, чем в разметке.

А в url аргументом значение первого комбо подставлять не пробовали?
Спойлер
зы: И снова здравствуйте!
...
And God I know I'm one
Рейтинг: 0 / 0
HTML'ный комбобокс
    #40138240
osmor_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч  17.11.2023, 14:04
[игнорируется]
То, что написано в ng-options, выглядит как комментарий.
Нет, это как раз функция заполнения списка для комбо 2 "currentTubeLineStation"
Перебирается некий "currentTubeLineList" который, вероятно, формируется на основании значения выбранного в "currentTubeLine" (первый комбо)
Еще, судя по всему, второй комбик не показывается, пока не кликнешь в первый.
ng-show="currentTubeLine"

Но как заставить angular понимать, что изменилось состояние select'a, не знаю.
...
Рейтинг: 0 / 0
HTML'ный комбобокс
    #40138241
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
RePredeclared  17.11.2023, 22:55
[игнорируется]
А в url аргументом значение первого комбо подставлять не пробовали?
Когда я тыркаю в комбобоксы вручную, а они реагируют, url никак не меняется. Значит, значение передается не через него. А кроме того, если я не увижу образец, то сам не смогу угадать имя параметра, в который это надо подставить.

Здравствуйте, конечно!
...
Рейтинг: 0 / 0
HTML'ный комбобокс
    #40138242
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
osmor_new  18.11.2023, 10:35
[игнорируется]
Нет, это как раз функция заполнения списка для комбо 2 "currentTubeLineStation"
Понял. Это ng-model. Я отвечал про ng-options.
...
Рейтинг: 0 / 0
HTML'ный комбобокс
    #40138243
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
На всякий случай: я свою задачу решил по-другому, заданный здесь вопрос потерял свою остроту. Но если кто-нибудь все-таки добьет его из спортивного интереса, то буду очень благодарен.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / HTML'ный комбобокс
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (1): Анонимы (1)
Пользователи онлайн (8): Bing Bot, Анонимы (5), Google Bot 1 мин., Yandex Bot 1 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]