1

我正在尝试围绕 javascript 媒体播放器控件创建 Orbeon Forms XBL 包装器,以包含在 XForms 应用程序中。

媒体文件的 URL 必须根据也与相同数据实例相关联的另一个控件(例如 xforms:input)的值动态构建。因此,组件接口将采用以下形式:

<comp:player ref="instance('data')/name"/>

在页面的其他地方会有另一个控件引用相同的值,例如

<xforms:input ref="instance('data')/name"/>

其中引用的实例数据的值将包含文件的名称,然后将其附加到 XBL 组件内的基本 URL 以形成媒体文件的最终 URL。

我遇到的问题是知道如何从 XBL 组件中的 javascript 访问这个值。我可以合并一个在引用的数据实例值更改时调用的脚本,但我只是看不到您如何从 javascript 访问该值,以便我可以创建 URL 并将其传递给媒体控件。

<xxforms:script ev:event="xforms-value-changed" type="text/javascript">

    /* How do you access the components referenced value? */ 
    var controlValue = ORBEON.xforms.Document.getValue(??????????);   

    /* construct the url of the media file from this value. */ 
    media.player.load('baseurl/' + controlValue); 

</xxforms:script> 

任何人都可以建议一种适当的方法来解决 Xforms XBL 组件中的此类问题吗?

4

1 回答 1

0

使用AJAXSLT库并创建一个 XPath 查询来获取属性值:

xpathParse("//xforms:input/@ref");   
于 2012-06-27T19:06:07.977 回答