如何基于Orbeon Xforms控件值在javascript中构建动态URL

时间:2012-04-03 14:32:52

标签: orbeon xbl

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

必须根据同一数据实例关联的另一个控件(例如xforms:input)的值动态构造媒体文件的URL。因此,组件接口的格式为:

<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组件中解决此类问题的适当方法吗?

1 个答案:

答案 0 :(得分:0)

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

xpathParse("//xforms:input/@ref");