首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Orbeon 2018.1无法从html/head/script访问ORBEON对象

Orbeon 2018.1无法从html/head/script访问ORBEON对象
EN

Stack Overflow用户
提问于 2018-09-10 16:03:45
回答 1查看 55关注 0票数 0

从Orbeon 2018.1开始,ORBEON javascript对象的加载方式发生了一些事情。下面的内容用于2017.2.2和3.9版本。

目标:我想使用适当的语言加载TinyMCE小部件。为此,我以前有这样的代码:

代码语言:javascript
复制
<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对象“未定义”。

我尝试将变量lang移动到我的模型中,如下所示:

代码语言:javascript
复制
<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的控件“

我在这里错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-10 23:02:09

通常,当到达内联脚本时,假设所有内容都已加载是危险的。最好将JavaScript初始化推迟到以后。

默认情况下,Orbeon窗体2018.1 不再包括内联脚本,因此JavaScript初始化被推迟。这主要是为了帮助CSP标题。您可以使用该属性重新启用内联脚本(请参见文档),但将您自己的初始化推迟到以后可能更好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52261626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档