Notes设计器中页面定义的Calendar对象在子表单中未识别问题求助
解决HCL Notes Web应用中Calendar对象未定义的问题
问题原因
Notes设计器中,Pages里的JS/CSS资源不会自动关联到子表单所在的Web页面;而JS Header的内容会在页面初始化阶段优先加载,所以子表单里的Calendar.setup()执行时,Pages中的Calendar构造函数还未被加载,导致"Calendar is undefined"错误。
解决方法
显式引入Pages资源到子表单
在子表单的日历初始化代码前,用Notes的@IncludePage标签引入存放Calendar资源的Pages页面,确保构造函数先于调用代码加载:<%@IncludePage("Calendar资源页面名称")%> <script type="text/javascript"> Calendar.setup({ /* 你的配置代码 */ }); </script>替换
"Calendar资源页面名称"为实际的Pages页面名称即可。将Calendar资源转为全局共享资源
- 在Notes设计器的「共享资源」节点下,新建「JavaScript库」,把Pages中的Calendar构造函数代码复制进去
- 新建「样式表资源」,复制对应的CSS内容
- 在使用该日历功能的子表单或父表单的属性设置中,添加引用这个共享JS库和样式表,让资源在页面加载时全局可用
调整Pages资源的加载时机
若要保留Pages存放资源的方式,可修改Pages代码,让其输出到页面<head>区域:<% If Not IsDefined("HeaderLoaded") Then HeaderLoaded = True %> <script type="text/javascript"> // 这里放入Calendar构造函数代码 </script> <style> // 这里放入Calendar CSS样式 </style> <% End If %>然后在表单的
<head>部分通过@IncludePage引入该Pages,确保资源在子表单代码执行前加载完成。
内容的提问来源于stack exchange,提问作者user10454837
相关产品推荐
相关产品推荐

