【问题标题】:Including Moment.js in LiveCycle Designer在 LiveCycle Designer 中包含 Moment.js
【发布时间】:2014-10-27 12:21:40
【问题描述】:

几天来,我一直在尝试将实际的 Moment.js 库包含在我使用 Adob​​e Livecycle Designer 创建的动态 PDF 中。

我们使用的是旧版本 (1.7.2) 没有任何问题,但现在我只收到“功能不存在”错误。

有人有这方面的经验吗?

提前致谢。

【问题讨论】:

    标签: javascript momentjs livecycle livecycle-designer


    【解决方案1】:

    如何在 Adob​​e LiveCycle 表单中包含 Moment.js:

    1. 下载缩小的脚本
    2. 在 LiveCycle Designer 中打开您的表单并创建一个名为 MOMENTJSMIN 的脚本对象
    3. 将缩小的脚本复制到该脚本对象中
    4. 在 LiveCycle Designer 的脚本编辑器窗口中,按以下方式编辑 MOMENTJSMIN 脚本对象:
    5. 删除所有脚本,但不包括第二个花括号 { :

      !function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.moment=b()}(this,function()
      
    6. 从缩小的脚本末尾删除圆括号和分号

    7. 将此行添加到缩小脚本的开头:

      if (xfa.momentjs == undefined) xfa.momentjs = function()
      
    8. 在 MOMENTJSMIN Script Object 的脚本结束后添加这个函数:

      function getMomentJS(){
          return xfa.momentjs();
      }
      

    现在您的 MOMENTJSMIN 脚本对象已设置为向整个表单中的脚本提供 Moment.js。

    要在您的任何脚本中使用 Moment.js,请使用以下行开始您的脚本对象或事件脚本:

    var moment = MOMENTJSMIN.getMomentJS();
    

    现在您可以在脚本中以该行开头的任何位置使用 moment()。例如:

    var moment = MOMENTJSMIN.getMomentJS();
    var jan07 = moment([2007, 0, 29]);
    app.alert(moment().format("dddd, MMMM Do YYYY, h:mm:ss a"));
    app.alert(jan07.format("dddd, MMMM Do YYYY") + " was " + jan07.fromNow());
    app.alert(moment.isDate(new Date()));
    

    【讨论】:

      【解决方案2】:

      我首先要检查的内容:

      • 在尝试从中调用函数之前,请确保您的脚本已完全加载。 (检查事件,调用函数-calculate、form:readty 等)
      • 检查脚本引用。正确的道路?名字对吗?
      • 检查函数是否真的存在
      • 检查函数参数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多