Начиная с Orbeon 2018.1, что-то случилось с загрузкой JavaScript-объекта ORBEON. Приведенный ниже материал работал для версий 2017.2.2 и 3.9.
Цель: я хочу загрузить виджет TinyMCE, используя соответствующий язык. Для этого у меня был такой код:
<xh:script type="text/javascript">
var lang = ORBEON.xforms.Document.getValue('language') ? ORBEON.xforms.Document.getValue('language').split('-')[0] : 'en';
var TINYMCE_CUSTOM_CONFIG = {
language: lang,
...
Этот html / head-код завершается ошибкой в версии 2018.1, поскольку объект ORBEON имеет значение "undefined".
Я попытался переместить переменную lang
в свою модель следующим образом:
<xf:instance id="language">
<language/>
</xf:instance>
<xf:action ev:observer="language" ev:event="xxforms-value-changed">
<xxf:script>
var lang = ORBEON.xforms.Document.getValue('language') ? ORBEON.xforms.Document.getValue('language').split('-')[0] : 'en';
TINYMCE_CUSTOM_CONFIG.language = lang;
</xxf:script>
</xf:action>
Но теперь код завершается ошибкой, потому что он говорит "java.lang.IllegalArgumentException: не удается найти элемент управления для id language
"
Что мне здесь не хватает?