вызов js функции в 8.3.14
Добрый вечер. Подскажите, пожалуйста, как вызвать js из 1С. Я совсем не знаю JS, а изучать его с нуля нет времени сейчас. Суть: В версии 8.3.14 в свойство Документ элемента ПолеHTMLДокумента содержит ВнешнийОбъект. Это мой HTML-документ, в котором объявлена функция func(str). Как её вызвать и передать ей параметр - текстовую строку. Делаю так:
Элементы.HTML_документ.Документ.window.eval(func('текст_строки'));
Естественно, не работает.....
Элементы.HTML_документ.Документ.window.eval(func('текст_строки'));
Естественно, не работает.....
По теме из базы знаний
- Редактирование и просмотр JSON в интерфейсе 1С (через поле HTML документа)
- Разбираемся с web-kit в 1С, на примере интеграции TinyMCE в управляемую форму в УТ 11.4. Допиливаем обмен с сайтом в УТ 11.4
- Универсальные инструменты 1С
- Получение html-кода страницы. JS из 1С
- Очередная попытка взаимодействия с JavaScript из клиента 1С. Расширение "Подключаемые Скрипты"
Найденные решения
Вариантов я вижу два.
1. Где-то в скрипте синтаксическая ошибка, парсер на ней спотыкается и молча завершает работу. Соответственно у объекта window не появляется никаких новых методов.
2. Вы пытаетесь обратиться к функции до окончания загрузки страницы. Все функции скрипта доступны только после срабатывания у поля HTML события "Документ сформирован".
Если ошибка синтаксическая, можно закомментировать весь скрипт, и потихоньку раскрывая комментарий ловить место где спотыкается парсер js.
1. Где-то в скрипте синтаксическая ошибка, парсер на ней спотыкается и молча завершает работу. Соответственно у объекта window не появляется никаких новых методов.
2. Вы пытаетесь обратиться к функции до окончания загрузки страницы. Все функции скрипта доступны только после срабатывания у поля HTML события "Документ сформирован".
Если ошибка синтаксическая, можно закомментировать весь скрипт, и потихоньку раскрывая комментарий ловить место где спотыкается парсер js.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Если на странице объявлена функция, например такая:
То вызвать ее из 1С можно вот так:
Аналогично можно передавать и параметры
Ну и вызывается вот так:
Вот кстати никогда не понимал, зачем используют eval для вызова функций на странице, так исторически сложилось? :) В этом не было смысла с движком IE, нет и сейчас.
У меня вообще есть идея написать небольшую статейку про вызов функций в обе стороны, после перехода на WebKit, вот только не знаю востребовано ли это будет? Недавно переводил один проект написанный под Осла, получилось с минимальными переделками сделать.
function SomeFunction(){
alert('Йа функцийа!');
}
То вызвать ее из 1С можно вот так:
Элементы.ПолеHTMLДокумента.Документ.defaultView.SomeFunction();
Аналогично можно передавать и параметры
function SomeFunctionWithParam(Param){
alert('Йа функцийа, а это мой параметр: '+Param);
}
Ну и вызывается вот так:
Элементы.ПолеHTMLДокумента.Документ.defaultView.SomeFunctionWithParam("Какой-то параметр функции");
Вот кстати никогда не понимал, зачем используют eval для вызова функций на странице, так исторически сложилось? :) В этом не было смысла с движком IE, нет и сейчас.
У меня вообще есть идея написать небольшую статейку про вызов функций в обе стороны, после перехода на WebKit, вот только не знаю востребовано ли это будет? Недавно переводил один проект написанный под Осла, получилось с минимальными переделками сделать.
Вызываю как вы указали:
Элементы.ПолеHTMLДокумента.Документ.defaultView.SomeFunctionWithParam("Какой-то параметр функции");
Очень долго думает, потом выдает:
Метод объекта не обнаружен (findAdress)
Элементы.ЯндексКарта.Документ.defaultView.findAdress(стр);
Проверил скрип - функция описана. В чем я еще мог накосячить?
Элементы.ПолеHTMLДокумента.Документ.defaultView.SomeFunctionWithParam("Какой-то параметр функции");
Очень долго думает, потом выдает:
Метод объекта не обнаружен (findAdress)
Элементы.ЯндексКарта.Документ.defaultView.findAdress(стр);
Проверил скрип - функция описана. В чем я еще мог накосячить?
Вариантов я вижу два.
1. Где-то в скрипте синтаксическая ошибка, парсер на ней спотыкается и молча завершает работу. Соответственно у объекта window не появляется никаких новых методов.
2. Вы пытаетесь обратиться к функции до окончания загрузки страницы. Все функции скрипта доступны только после срабатывания у поля HTML события "Документ сформирован".
Если ошибка синтаксическая, можно закомментировать весь скрипт, и потихоньку раскрывая комментарий ловить место где спотыкается парсер js.
1. Где-то в скрипте синтаксическая ошибка, парсер на ней спотыкается и молча завершает работу. Соответственно у объекта window не появляется никаких новых методов.
2. Вы пытаетесь обратиться к функции до окончания загрузки страницы. Все функции скрипта доступны только после срабатывания у поля HTML события "Документ сформирован".
Если ошибка синтаксическая, можно закомментировать весь скрипт, и потихоньку раскрывая комментарий ловить место где спотыкается парсер js.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот