几天来,我一直在尝试将实际的Moment.js库包含在我用Adobe Livecycle Designer创建的动态PDF中。
我们使用了一个旧版本(1.7.2),没有任何问题,但现在我只得到一个"函数不存在"的错误。
有人对此有经验吗?
提前谢谢。
如何在Adobe LiveCycle表单中包含Moment.js:
- 下载缩小的脚本
- 在LiveCycle Designer中,打开表单并创建一个名为MOMENTJSMIN的脚本对象
- 将缩小后的脚本复制到该脚本对象中
- 在LiveCycle Designer的脚本编辑器窗口中,按以下方式编辑MOMENTJSMIN脚本对象:
-
删除所有脚本,直到但不包括第二个大括号{:
!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.moment=b()}(this,function()
-
删除缩小脚本末尾的圆括号和分号
-
将此行添加到缩小脚本的开头:
if (xfa.momentjs == undefined) xfa.momentjs = function()
-
在MOMENTJSMIN脚本对象中,在脚本结束后添加此函数:
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()));
我首先要检查的是:
- 在尝试从脚本中调用函数之前,请确保脚本已完全加载
- 检查脚本引用。正确的路径?名字对吗
- 检查该功能是否真的存在
- 检查功能参数