これは、LiveCycle Designer の JavaScript で実現できます。次のスクリプトを Form の docReady イベントに配置すると、テキスト オブジェクトの URL を動的に変更できます。
form1::docReady - (JavaScript, client)
// If this code is running on the server, you don't want it to run any code
// that might force a relayout, or you could get stuck in an infinite loop
if (xfa.host.name != "XFAPresentationAgent") {
// You would load the URL that you want into this variable, based on
// whatever XML data is being passed into your form
var sURL = "www.stackoverflow.com"; // mywebsite/mypage?option=xxx
// URLs are encoded in XHTML. In order to change the URL, you need
// to create the right XHTML string and push it into the Text object's
// <value> node. This is a super simple XHTML shell for this purpose.
// You could add all sorts of markup to make your hyperlink look pretty
var sRichText = "<body><p><a href=\"" + sURL + "\">Foo</a></p></body>";
// Assuming you have a text object called "Text1" on the form, this
// call will push the rich text into the node. Note that this call
// will force a re-layout of the form
this.resolveNode("Text1").value.exData.loadXML(sRichText, false, true);
}
注意点がいくつかあります。Acrobat の URL は、Acrobat 9.0 以降でのみサポートされています。そのため、古いバージョンの Acrobat を使用しているユーザーがフォームを開いた場合、URL は機能しません。
また、「if (xfa.host.name !=...)」行からわかるように、フォームがサーバー上で生成されている場合、このコードは正しく実行されません。 docReady 中のフォームは、特定の古いバージョンの LiveCycle サーバーで問題を引き起こす可能性があります。このスクリプトをサーバー上で実行する必要がある場合は、別のイベントを選択してから form::docReady を選択する必要があります。