![]() |
|
вызов js функции в 8.3.14 | ☑ | ||
---|---|---|---|---|
0
digitta
16.05.19
✎
18:44
|
Добрый вечер. Подскажите, пожалуйста, как вызвать js из 1С. Я совсем не знаю JS, а изучать его с нуля нет времени сейчас. Суть: В версии 8.3.14 в свойство Документ элемента ПолеHTMLДокумента содержит ВнешнийОбъект. Это мой HTML-документ, в котором объявлена функция func(str). Как её вызвать и передать ей параметр - текстовую строку. Делаю так:
Элементы.HTML_документ.Документ.window.eval(func('текст_строки')); Естественно, не работает..... |
|||
1
Garykom
гуру
16.05.19
✎
18:47
|
http://catalog.mista.ru/public/398366/
Eval нету и Документ.parentWindow нету Есть Элементы.HTML_документ.Документ.defaultView Перевод с модели IE на модель Webkit 8.3.14 платформа |
|||
2
Garykom
гуру
16.05.19
✎
18:48
|
Нечто вроде
Элементы.HTML_документ.Документ.defaultView.func('текст_строки') попробуй |
|||
3
digitta
16.05.19
✎
18:55
|
Неправильная константа типа Дата
Элементы.HTML_документ.Документ.defaultView.func(<<?>>'текст_строки'); |
|||
4
Garykom
гуру
16.05.19
✎
18:59
|
(3) Кавычки исправь
|
|||
5
digitta
16.05.19
✎
19:06
|
Поправил. Теперь ошибка теперь не вылетает, но функция не отрабатывает.
|
|||
6
Garykom
гуру
16.05.19
✎
19:07
|
(5) Добавь в функцию Alert("Сообщение") что будет?
|
|||
7
Garykom
гуру
16.05.19
✎
19:10
|
И да не факт что функция рабочая после смены движка IE на WebKit
|
|||
8
Garykom
гуру
16.05.19
✎
19:15
|
У меня например в 1С:Предприятие 8.3 (8.3.14.1565) так работает прекрасно
|
|||
9
digitta
16.05.19
✎
19:17
|
не выводит сообщение, значит не входит в функцию. платформа у меня та же
|
|||
10
digitta
16.05.19
✎
19:18
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=8"> <style type="text/css"> html { height: 100% } body { height: 100%; margin: 0px; padding: 0px } #map { height: 100% } </style> <script src="https://api-maps.yandex.ru/2.1/?apikey=3ebf705a-b58a-4352-87a4-60f03edd2119&load=package.full&lang=ru_RU"></script> <script src="http://yandex.st/jquery/1.6.4/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> var index = 1; var MyMap, route; var clusterer; var PointArray = []; var noclick = false; ymaps.ready(init) function init() { var myMap = new ymaps.Map('map', { center: [55.753994, 37.622093], zoom: 9 }); //window.addEventListener('load', findAdress('Витебск'); } function findAdress(address) { Alert("Сообщение"); // Поиск координат центра Нижнего Новгорода. ymaps.geocode(address, { /** * Опции запроса * see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/geocode.xml */ // Сортировка результатов от центра окна карты. // boundedBy: myMap.getBounds(), // strictBounds: true, // Вместе с опцией boundedBy будет искать строго внутри области, указанной в boundedBy. // Если нужен только один результат, экономим трафик пользователей. results: 1 }).then(function (res) { // Выбираем первый результат геокодирования. var firstGeoObject = res.geoObjects.get(0), // Координаты геообъекта. coords = firstGeoObject.geometry.getCoordinates(), // Область видимости геообъекта. bounds = firstGeoObject.properties.get('boundedBy'); firstGeoObject.options.set('preset', 'islands#darkBlueDotIconWithCaption'); // Получаем строку с адресом и выводим в иконке геообъекта. firstGeoObject.properties.set('iconCaption', firstGeoObject.getAddressLine()); // Добавляем первый найденный геообъект на карту. myMap.geoObjects.add(firstGeoObject); // Масштабируем карту на область видимости геообъекта. myMap.setBounds(bounds, { // Проверяем наличие тайлов на данном масштабе. checkZoomRange: true }); /** * Если нужно добавить по найденным геокодером координатам метку со своими стилями и контентом балуна, создаем новую метку по координатам найденной и добавляем ее на карту вместо найденной. */ /** var myPlacemark = new ymaps.Placemark(coords, { iconContent: 'моя метка', balloonContent: 'Содержимое балуна <strong>моей метки</strong>' }, { preset: 'islands#violetStretchyIcon' }); myMap.geoObjects.add(myPlacemark); */ }); } </script> </head> <body> <div id="map" style="width:100%; height:100%"></div> <input type="hidden" id="address" name="address" value="Полоцк, проспект Скорины 2"/> <input type="hidden" id="CoordX" name="CoordX" value="0"></input> <input type="hidden" id="CoordY" name="CoordY" value="0"></input> <input type="hidden" id="RouteInfo" name="RouteInfo" value=""></input> <input type="hidden" id="WebClientOperation" name="WebClientOperation" value="0"></input> <input type="hidden" id="WebClient" name="WebClient" onclick="WebClientClick();"></input> </body> </html> |
|||
11
Garykom
гуру
16.05.19
✎
19:19
|
Кстати кто в курсе как глянуть в WebKit ошибки JavaScript и загрузки страницы в целом?
Вот написал вместо function test(ttt){ просто func test(ttt){ // сча на голанг просто перестроился и результат ноль Как бы глянуть то страница нормально сформировалась или нет? |
|||
12
digitta
16.05.19
✎
19:20
|
из 1с вызываю findAdress(address)
стр = "Витебск"; Элементы.ЯндексКарта.Документ.defaultView.findAdress(стр); |
|||
13
Garykom
гуру
16.05.19
✎
19:23
|
Дай код страницы в нормальном виде файлом через обменник какой
|
|||
14
Garykom
гуру
16.05.19
✎
19:24
|
(13)+ В смысле весь .html
|
|||
15
digitta
16.05.19
✎
19:29
|
||||
16
Garykom
гуру
16.05.19
✎
19:31
|
(15) файлы были удалены https://i.paste.pics/7042bab2abdee4951f48f173811c0176.png
|
|||
17
Garykom
гуру
16.05.19
✎
19:33
|
||||
18
Garykom
гуру
16.05.19
✎
19:33
|
(17) +
|
|||
19
digitta
16.05.19
✎
19:33
|
сорри... там одно скачиание указано было... перезалил
https://dropmefiles.com/laQej |
|||
20
Garykom
гуру
16.05.19
✎
19:33
|
|
|||
21
digitta
16.05.19
✎
19:46
|
скачался из файлообменника?
|
|||
22
Garykom
гуру
16.05.19
✎
19:47
|
(21) Да и свои добавленные функции даже не отрабатывают.
Короче надо изучать исходники там походе некое подавление идет или глюки какие то. В пустой html странице или без левых скриптов все пашет. |
|||
23
digitta
16.05.19
✎
19:51
|
пашет (
|
|||
24
Garykom
гуру
16.05.19
✎
20:12
|
Короче предложу сразу инициализировать с переданными данными для геокодера.
|
|||
25
Garykom
гуру
16.05.19
✎
20:13
|
(24)+ Короче на лету страницу перестраивай и вызывай с новыми текстом html где внутри уже прописано что надо.
Изврат конечно но что поделать. |
|||
26
digitta
16.05.19
✎
20:18
|
ну так-то работает, но хочется изящного решения. да и разобраться тоже в чем там у меня дело тоже хлчеться - может когда-нибудь снова будет нужно мне или кому-нибудь
|
|||
27
Garykom
гуру
16.05.19
✎
20:20
|
Это 1С, это хардкор!
|
|||
28
Garykom
гуру
16.05.19
✎
20:21
|
Чем хуже чем в коде прописывать Справочники.Номенклатура.НайтиПоКоду("0001") ? :)
|
|||
29
digitta
16.05.19
✎
20:23
|
не понял
|
|||
30
Garykom
гуру
16.05.19
✎
20:27
|
(29) Лишь бы работало как надо и устраивало заказчика, наводить красоту некогда.
К черту изящество если для этого надо перелопать весь апи от яндекса чтобы понять где разрешить выполнять сторонний код. У меня сча почему то не работает перемещение-перетаскивание мышкой по карте, зафиксировано в одном месте. И я хз что за это отвечает, копаться надо. |
|||
31
digitta
17.05.19
✎
17:25
|
Разобрался:
Вызов функции действительно производиться так как вы описали. Но в моем случае её вызов происходил до того как загружалось API ЯндексКарт. Естественно, логика моей функции без загруженного API не отрабатывалась. Спасибо за помощь! |
|||
32
Garykom
гуру
17.05.19
✎
17:34
|
(31) А alert то почему не отрабатывает?
|
|||
33
digitta
17.05.19
✎
22:00
|
alert был внутри функции.
и у меня такое впечатление, что alert вообще не работает в среде webkit |
|||
34
Garykom
гуру
17.05.19
✎
22:01
|
(33) На пустом документе замечательно работает я же проверял.
|
|||
35
Garykom
гуру
17.05.19
✎
22:03
|
Скорее всего кода загрузки ymaps работает слишком долго и блокирует все прочие вызовы функций.
Надо бы проверить, свою функцию засунуть раньше чем загрузка ymaps |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |