6 / 6 / 0
Регистрация: 18.01.2012
Сообщений: 14
|
|||||||||||
Создание глобальной функции в code.js для plugin - "Офис Р7"15.01.2025, 23:13. Показов 902. Ответов 4
В работе использую "Офис Р7" на Alt Linux. Написал плагин для создания письма в соответствии с корпоративными стандартами (требованиями). Листинг получился длинный - письма бывают разные. Из-за множества однотипных (повторяющихся) цепочек операций есть возможность сократить файл code.js создав отдельную функцию ГЛОБАЛЬУЮ для создания параграфа с текстом и параметрами. Но есть проблема: Она работает только если написана внутри обработчика нажатия кнопки this.callComand function() { ... }; . А таких кнопок у моего плвгина множество, вот и приходится в каждый обработчик вносить функцию создания параграфа.
ВОПРОС: Как правильно описать функцию так, чтобы она была доступна из каждого обработчика события? Если можно, подскажите как должна быть описана такая функция! В интернете накопал и Попробовал следующие варианты описания функции, которые не дали желаемый результат:
При вызове такой функции выводит ошибку, что она неопределена. Умом понимаю, что проблема с доступом к функции, т.к. если фенкция написана внутри обработчика всё работает "как часы".
0
|
15.01.2025, 23:13 | |
Ответы с готовыми решениями:
4
Создание глобальной базы данных для игры на сокетах. (без доменов и своих сайтов) Создание Диалоговых окон в ResEdit для Code::Blocks Создание глобальной переменной |
6 / 6 / 0
Регистрация: 18.01.2012
Сообщений: 14
|
||||||||||||||||
16.01.2025, 22:18 [ТС] | ||||||||||||||||
Хочу привести копию скрипта для пояснения вышеописанной проблемы.
Здесь в примере я удалил бОльшую часть параметров для уменьшения длины кода.
p.s. Там сверху описана "Глобальная функция". При выполнении скрипта на неё никто не ругается, но я не могу к ней обратиться из обработчика события нажатия кнопки, т.к. в консоле появляется сообщение, что: undefined myGlobalFunction - неопределена. И выполнение останавливается ![]()
0
|
![]() 120 / 50 / 12
Регистрация: 16.11.2018
Сообщений: 217
|
|
16.01.2025, 23:27 | |
Возможно отладчик те поможет
https://support.r7-office.ru/d... g-windows/
0
|
6 / 6 / 0
Регистрация: 18.01.2012
Сообщений: 14
|
|||||||
18.01.2025, 16:39 [ТС] | |||||||
![]() Только у мкея LINUX
Я, как раз, в этой консоле и смог увидеть, что моя Глобальная функция - не определена. Вопрос в том, что я неправильно сделал при описании Глобальной фукции и как это исправить.
0
|
6 / 6 / 0
Регистрация: 18.01.2012
Сообщений: 14
|
|
06.02.2025, 21:50 [ТС] | |
Прошло уже много времени и задача остаётся нерешённой.
Всё оказалось намного проще, чем кажется на первый взгяд. В плагине для "Офис-Р7" существует два состояния:
Между этими двумя состояниями НЕТ ВОЗМОЖНОСТИ ПЕРЕДАВАТЬ ФУНКЦИИ. Это факт и с эти нужно смириться. В первом состоянии нам доступно окно плагина, а точнее элементы окна: поля, кнопки, надписи (по id="...") и другие элементы приложения, например LocalStorage. Во втором состоянии будет доступен сам документ с его элементами (параграфы, надписи, форматы, шрифты и т.п. А доступ к окну плагина и LocalStorage будет отсутствовать. Важно! Состояние может быть "или 1, или 2". Одновременно оба сразу быть не могут. Отсюда вывод: Функция, созданная в состоянии "Приложение" не может быть передана ( и использована) в состоянии "Документ". Стоит упомянуть, что передать из "Приложения" в "Документ" можно только специальный объект Asс.sсоpe Таким образом двигаясь по скрипту "code_.js" в "Приложении" - формируем данные, затем по кнопке плагина переключаемся в "Документ". Попадаем в обработчик событий, продолжаем двигаться по скрипту - вставляем данные в документ. Выходим из обработчика, т.е. возвращаемся в "Приложение". И так можно повторять многократно. Этот переход из одного состояния в другое - явно ни где ни кем не описывается, но он есть! Поняв это, мне удалось решить эту проблему, а точнее, найти обходной путь. ![]()
1
|
06.02.2025, 21:50 | |
Помогаю со студенческими работами здесь
5
Создание глобальной переменной Создание глобальной переменной Создание глобальной переменной Создание глобальной матрицы из локальных
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
![]() |
||||
Создаем RESTful API на Golang с Fiber
golander 04.06.2025
Я перепробовал десятки фреймворков для создания RESTful API за последние годы, и когда впервые столкнулся с Fiber, понял, что это совсем другой уровень. Нет, я не собираюсь рассказывать сказки о. . .
|
Как работать с куки в ASP.NET Core
UnmanagedCoder 04.06.2025
Когда я впервые начал работать с куки в ASP. NET Core, меня поразило, насколько отличается работа с ними от классического ASP. NET. В Core все стало более декомпозированным - больше нет удобного. . .
|
Рисование коллайдеров физического движка Box2D-WASM v3 на Three.js
8Observer8 04.06.2025
Erin Catto (автор Box2D) переписал с нуля Box2D v2 с С++ на Си и появилась версия Box2D v3. Birch-san собрал Box2D v3 в WebAssembly (WASM), чтобы можно было использовать Box2D v3 на JavaScript.
В. . .
|
Worker Threads и многопоточность в Node.js
Reangularity 03.06.2025
Если вы когда-нибудь посещали собеседования на позицию Node. js разработчика, почти наверняка слышали заезженную фразу: "Node. js - однопоточная платформа". Звучит как неоспоримый факт, который. . .
|
Event-Driven CQRS на C# с паттерном Outbox
stackOverflow 03.06.2025
В традиционной модели происходит примерно следующее: вы получаете команду, обрабатываете ее, сохраняете результат в базу данных и затем пытаетесь опубликовать событие в брокер сообщений. Но что если. . .
|
OwenLogic: перенос сетевых переменных в панель Weintek (EasyBuilder Pro)
ФедосеевПавел 03.06.2025
ВВЕДЕНИЕ
ПЕРЕД ЭКСПЕРИМЕНТАМИ - СОЗДАЙТЕ РЕЗЕРВНЫЕ КОПИИ ПРОЕКТОВ
На момент написания статьи (02 июня 2025 г. ) самыми актуальными версиями ПО являются:
OwenLogic v. 2. 10. 366
EasyBuilder Pro. . .
|
Dev-c++5.11 Покорение вершины
russiannick 02.06.2025
С утра преследовала одна мысль - вот бы выучить С++. Сказано-сделано. Окончив смену, скачал в интернете бестселлер Дэвиса Dev-C++ для чайников. Книга оказалась интересной и я скачал среду, на примере. . .
|
Тестирование Pull Request в Kubernetes с GitHub Actions и GKE
Mr. Docker 02.06.2025
Мы все знаем, что тестирование на локальной машине или в изолированном CI-окружении — это не совсем то же самое, что тестирование в реальном кластере Kubernetes. Контекстно-зависимые ошибки, проблемы. . .
|
Оптимизация CMake для ускорения сборки
bytestream 02.06.2025
Вы когда-нибудь ловили себя на мысле, что пока ваш проект компилируется, можно успеть сварить кофе, прочитать главу книги или даже сбегать в соседний офис? Если да, то добро пожаловать в клуб. . .
|
JS String.prototype.localeCompare()
mr_dramm 02.06.2025
скопировано из этой темы чтобы не потерялось.
localeCompare без указания локали для сравнения строк под капотом использует Intl. Collator , который работает согласно Unicode Collation Algorithm. . .
|