Как создать динамический URL в JavaScript на основе значения элемента управления Orbeon Xforms - PullRequest
1 голос
/ 03 апреля 2012

Я пытаюсь создать оболочку Orbeon Forms XBL вокруг элемента управления медиапроигрывателем javascript для включения в приложение XForms.

URL-адрес медиа-файла должен создаваться динамически на основе значения другого элемента управления (например, xforms: input), также связанного с тем же экземпляром данных. Поэтому интерфейс компонента будет иметь вид:

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

и в других местах на странице будет другой элемент управления, ссылающийся на то же значение, например,

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

где значение ссылочных данных экземпляра будет содержать имя файла, который затем добавляется к базовому URL-адресу в компоненте XBL для создания окончательного URL-адреса медиа-файла.

Проблема в том, что я знаю, как получить доступ к этому значению из javascript в компоненте XBL. Я могу включить скрипт, который вызывается при изменении значения экземпляра данных, на который ссылаются, но я просто не вижу, как вы можете получить доступ к значению из 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 голосов
/ 27 июня 2012

Используйте библиотеку AJAXSLT и создайте запрос XPath для получения значения атрибута:

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