вызов js функции в 8.3.14

1. digitta 16.05.19 18:07 Сейчас в теме
Добрый вечер. Подскажите, пожалуйста, как вызвать js из 1С. Я совсем не знаю JS, а изучать его с нуля нет времени сейчас. Суть: В версии 8.3.14 в свойство Документ элемента ПолеHTMLДокумента содержит ВнешнийОбъект. Это мой HTML-документ, в котором объявлена функция func(str). Как её вызвать и передать ей параметр - текстовую строку. Делаю так:
Элементы.HTML_документ.Документ.window.eval(func('текст_строки'));
Естественно, не работает.....
По теме из базы знаний
Найденные решения
4. deGreese 17.05.19 12:06 Сейчас в теме
Вариантов я вижу два.
1. Где-то в скрипте синтаксическая ошибка, парсер на ней спотыкается и молча завершает работу. Соответственно у объекта window не появляется никаких новых методов.
2. Вы пытаетесь обратиться к функции до окончания загрузки страницы. Все функции скрипта доступны только после срабатывания у поля HTML события "Документ сформирован".

Если ошибка синтаксическая, можно закомментировать весь скрипт, и потихоньку раскрывая комментарий ловить место где спотыкается парсер js.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. deGreese 17.05.19 08:21 Сейчас в теме
Если на странице объявлена функция, например такая:
function SomeFunction(){
  alert('Йа функцийа!');
}

То вызвать ее из 1С можно вот так:
Элементы.ПолеHTMLДокумента.Документ.defaultView.SomeFunction();


Аналогично можно передавать и параметры
function SomeFunctionWithParam(Param){
  alert('Йа функцийа, а это мой параметр: '+Param);
}

Ну и вызывается вот так:
Элементы.ПолеHTMLДокумента.Документ.defaultView.SomeFunctionWithParam("Какой-то параметр функции");


Вот кстати никогда не понимал, зачем используют eval для вызова функций на странице, так исторически сложилось? :) В этом не было смысла с движком IE, нет и сейчас.

У меня вообще есть идея написать небольшую статейку про вызов функций в обе стороны, после перехода на WebKit, вот только не знаю востребовано ли это будет? Недавно переводил один проект написанный под Осла, получилось с минимальными переделками сделать.
3. digitta 17.05.19 10:37 Сейчас в теме
Вызываю как вы указали:
Элементы.ПолеHTMLДокумента.Документ.defaultView.SomeFunctionWithParam("Какой-то параметр функции");

Очень долго думает, потом выдает:
Метод объекта не обнаружен (findAdress)
Элементы.ЯндексКарта.Документ.defaultView.findAdress(стр);


Проверил скрип - функция описана. В чем я еще мог накосячить?
4. deGreese 17.05.19 12:06 Сейчас в теме
Вариантов я вижу два.
1. Где-то в скрипте синтаксическая ошибка, парсер на ней спотыкается и молча завершает работу. Соответственно у объекта window не появляется никаких новых методов.
2. Вы пытаетесь обратиться к функции до окончания загрузки страницы. Все функции скрипта доступны только после срабатывания у поля HTML события "Документ сформирован".

Если ошибка синтаксическая, можно закомментировать весь скрипт, и потихоньку раскрывая комментарий ловить место где спотыкается парсер js.
5. digitta 17.05.19 13:03 Сейчас в теме
(4) спасибо, сейчас проработаю оба варианта
6. digitta 17.05.19 17:19 Сейчас в теме
Вариант №2. Обращение к функции происходит раньше, чем загружается API Яндекс.Карт. Спасибо за помощь!
7. handscenter 60 16.09.19 15:55 Сейчас в теме
(10) (11)(12) skype skorobochkin
(6)
Вариант №2. Обращение к функции происходит раньше, чем загружается API Яндекс.Карт. Спасибо за помощь!

у меня подобная проблема,
в яндекс картах 8.3.15 не работает перемещение по карте. В 8.3.13 все работает.
как проверить что апи ЯК загружен?
8. deGreese 17.10.19 11:29 Сейчас в теме
(7)
в яндекс картах 8.3.15 не работает перемещение по карте.

Есть такое дело, проблема в платформе. Ждем когда отремонтируют.
В качестве костыля можно разместить под картой кнопки "вверх", "вниз", "влево", "вправо" и двигать карту методами карты.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот