Livecycle表单中的动态超链接

时间:2009-07-22 18:06:50

标签: livecycle

我试图找出如何在Livecycle表单中创建一个指向URL的超链接,该URL将在表单呈现的不同日期发生变化。例如,有一天我可能希望超链接指向:

mywebsite /我的空间?选项= XXX

在另一天,我希望它指出:

mywebsite /我的空间?选项= YYY

XXX和YYY可以很容易地作为XML传递到表单的数据中,但我只是不知道如何创建它以便更改超链接以对应于此。

有什么建议吗?

3 个答案:

答案 0 :(得分:3)

这可以通过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服务器出现问题。如果你确实需要在服务器上运行这个脚本,你应该选择一个不同的事件,然后形成:: docReady。

答案 1 :(得分:1)

我在WorkSpace中向用户提出的一些投诉是,点击链接在同一个标​​签中打开它们,因此他们丢失了WorkSpace表单,并且在Designer 11中无法更改它。我认为解决方案我出现了因为那也适合你。

我制作了没有边框且没有背景的按钮,并且在他们的点击事件中有这一行(在Javascript中,在客户端运行)

app.launchURL("http:/stackoverflow.com/", true);

添加一些逻辑可以很容易地根据当天选择正确的URL,并且它不会导致任何表单重新呈现。

在超链接与其他文本一致的某些位置,我将链接的文本留下蓝色并带下划线但没有超链接,只需将按钮(没有背景,没有边框,没有标题)放在上面。是否需要定位且不流动的子窗体才能工作,因此根据您的布局,它可能会变得有点笨重。

哇,刚刚意识到我参加聚会已经很晚了。好吧,任何使用ES4的人都面临类似的问题。 。

答案 2 :(得分:0)

结束使用第三方组件来操纵PDF的超链接...希望有一个更好的解决方案,因为这个成本大约1000美元。