1

XForms アプリケーションに含めるために、JavaScript メディア プレーヤー コントロールの周りに Orbeon Forms XBL ラッパーを作成しようとしています。

メディア ファイルの URL は、同じデータ インスタンスに関連付けられている別のコントロール (xforms:input など) の値に基づいて動的に構築する必要があります。したがって、コンポーネント インターフェイスは次の形式になります。

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

ページの他の場所には、同じ値を参照する別のコントロールがあります。

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

ここで、参照されるインスタンス データの値にはファイルの名前が含まれ、XBL コンポーネント内のベース URL に追加されて、メディア ファイルの最終的な URL が作成されます。

私が抱えている問題は、XBL コンポーネント内の JavaScript からこの値にアクセスする方法を知っていることです。参照されたデータ インスタンスの値が変更されたときに呼び出されるスクリプトを組み込むことはできますが、URL を作成してメディア コントロールに渡すことができるように、JavaScript から値にアクセスする方法がわかりません。

<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 に答える