|
Как из 1С установить атрибут selected | ☑ | ||
---|---|---|---|---|
0
ChipPensioner
23.08.22
✎
20:51
|
На сайте имеется элемент с выпадающим списком
<select class="select__native-select__2WA65 always" aria-labelledby="currency-field-3"> <option value="0">Albania Lek (ALL)</option> <option value="1">Angola Kwona (AOA)</option> <option value="2">Argentina Peso (ARS)</option> <option value="3">Australian Dollar (AUD)</option> <option value="4">Bahrain Dinar (BHD)</option> <option value="5" selected="">Bangladesh Taka (BDT)</option> <option value="6">Bulgarian Lev (BGN)</option ><option value="7">Bolivia Boliviano (BOB)</option>..... ....... </select> Как для определенной позиции списка установить опцию "selected" ? Пробовал так - не получается ЭлементыО = ДокументHTML.ПолучитьЭлементыПоИмени("option"); Для Каждого ЭлементО Из ЭлементыО Цикл Атр = ЭлементО.ПолучитьАтрибут("value"); Если Атр="3" Тогда ДокументHTML.createAttribute("selected") ; ЭлементО.setAttribute("selected", ""); КонецЕсли; КонецЦикла; |
|||
1
Asmody
23.08.22
✎
23:19
|
вот это зачем?
ДокументHTML.createAttribute("selected") ; |
|||
2
ChipPensioner
24.08.22
✎
15:10
|
Копался по сайтам и форумам, нашел вроде бы приемлимый вариант, но он не работает.
|
|||
3
oslokot
24.08.22
✎
15:30
|
У меня точно работает вот такой способ. Попробуй сделать по такому принципу
|
|||
4
Святофор
24.08.22
✎
16:11
|
Если Атр="3" Тогда
ЭлементО.selected = true; ......... ? |
|||
5
ChipPensioner
24.08.22
✎
18:56
|
Вобщем, чтоб было понятно, что я хочу:
Нужно получить курсы валют с сайта Reuters. Курс валюты, установленный по умолчанию я получаю, а вот сменить валюту - не получается. Выбор валюты идет из выпадающего списка и отмечается как "selected" Я так подозреваю, что придется заняться JS По предыдущим советам: ЭлементО.selected = true; - не получется (Поле объекта не обнаружено), а ЭлементДом.setAttribute("onclick", ТекстСкрипта); - ТекстСкрипта - это JS? Может кто направит в какой стороне рыть? |
|||
6
Asmody
24.08.22
✎
20:53
|
(5) вот сюда рой https://developer.mozilla.org/ru/docs/Web/API/Element/setAttribute
|
|||
7
oslokot
25.08.22
✎
09:23
|
(5) в (3) это просто пример.
Для вашего случая можно попробовать заменить
на
|
|||
8
СеменовСемен
25.08.22
✎
09:28
|
(0) может проще самому послать этот запрос, а не кнопки нажимать?
|
|||
9
Kassern
25.08.22
✎
09:33
|
Неужели на сайте нет апишки, по которой можно дергать курс нужной валюты?
|
|||
10
Святофор
25.08.22
✎
10:27
|
(7) это все прекрасно, getElementById тут работать не будет за неимением такового...
|
|||
11
Святофор
25.08.22
✎
10:28
|
>ЭлементДом.setAttribute("onclick", ТекстСкрипта); - ТекстСкрипта - это JS?
на событие вешается какой-то скрипт |
|||
12
Святофор
25.08.22
✎
10:37
|
ЭлементДом.setAttributeNode(ДокументHTML.setAttribute("selected", ""));
|
|||
13
ChipPensioner
25.08.22
✎
12:11
|
(9) Вот там пока и роюсь.
|
|||
14
ChipPensioner
25.08.22
✎
12:45
|
(12) Метод объекта не обнаружен (setAttribute)
|
|||
15
Святофор
25.08.22
✎
14:54
|
(14) ну может так
новыйАтрибут = ДокументHTML.createAttribute("selected"); атрибутЭлемента = ЭлементДом.setAttributeNode(новыйАтрибут); атрибутЭлемента.Значение = "true"; |
|||
16
Kassern
25.08.22
✎
14:56
|
А не проще на каком-нибудь другом языке написать прослойку, записывать данные в удобочитаемом виде и уже их скармливать 1ске? Это при условии, что у сервиса нет открытого API для получения нужных данных.
|
|||
17
ChipPensioner
01.09.22
✎
16:37
|
Вобщем получилось так:
СтрокаЗапроса = "{""fields"":""last"",""rics"":""USDEUR""}"; СтрокаЗапросаURL = КодироватьСтроку(СтрокаЗапроса, СпособКодированияСтроки.КодировкаURL); HTTPЗапрос = Новый HTTPЗапрос("pf/api/v3/content/fetch/quote-by-rics-v1?query="+СтрокаЗапросаURL + "&d=108&_website=reuters"); ОтветHTTP = HTTPСоединение.ВызватьHTTPМетод("GET",HTTPЗапрос); ТелоHTTP = ОтветHTTP.ПолучитьТелоКакСтроку(); Если ОтветHTTP.КодСостояния = 200 Тогда ЧтJSON = Новый ЧтениеJSON; ЧтJSON.УстановитьСтроку(ТелоHTTP); ОтветВJSON = ПрочитатьJSON(ЧтJSON); ЧтJSON.Закрыть(); //Результат.Успешно = Истина; Результат = СтроковыеФункцииКлиентСервер.СтрокаВЧисло( ОтветВJSON.result.market_data.currencypairs[0].last); Сообщить("Курс = "+ Результат); Возврат Результат; Может куму пригодится. Всем спасибо. |
|||
18
ChipPensioner
01.09.22
✎
16:42
|
Ну а дальше делаем цикл по нужным валютам, подставляем в СтрокуЗапроса и получаем курсы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |