HCL Notes客户端V11+表单中JavaScript使用及支持范围技术咨询
HCL Notes客户端V11+表单JavaScript使用指南
一、核心支持的DOM与对象模型
HCL Notes客户端表单里的JavaScript基于内置Chromium引擎(V11及以上),同时保留传统Notes表单API特性,核心支持的对象包括:
- 标准DOM对象:
document.forms[](访问表单集合)、document.all[](通过ID/名称定位元素)、表单字段直接引用(如document.forms[0].fieldName) - Notes专属客户端对象:
NotesUIDocument:管控当前打开的UI文档,支持获取/设置字段值、刷新字段、切换视图等操作NotesDocument:操作后端文档数据,可读取文档项、保存文档NotesSession:获取当前会话信息,比如当前用户、服务器配置
二、可实现的典型功能
- 字段交互:实时校验输入格式(邮箱、手机号等)、根据其他字段值动态显隐字段
- 数据联动:选择下拉选项后自动填充关联字段(如选部门后带出负责人)
- 表单验证:提交前检查必填字段、验证值是否符合规则
- UI控制:修改字段样式(错误提示时标红边框)、触发按钮事件、刷新表单局部区域
- 数据操作:读取后端关联文档数据、批量修改字段值、调用Notes内置功能(发送邮件、打开附件)
三、关键限制说明
- 不支持现代DOM选择器:
document.getElementById()、document.querySelector()、document.querySelectorAll()均无法使用,必须通过document.all[]或document.forms[]访问元素 - ES6+特性支持有限:箭头函数、let/const部分场景可用,但复杂语法可能出现兼容性问题,建议优先用ES5标准写法
- 浏览器全局对象受限:
window对象部分方法不可用,仅alert()弹窗稳定兼容,confirm()、prompt()可能失效 - 跨域严格限制:无法访问外部网站资源,仅能操作Notes本地或服务器内资源
四、实用代码示例
1. 获取并验证字段值
// 通过document.all定位字段 var emailField = document.all["Email"]; if (emailField.value === "") { emailField.style.border = "1px solid red"; return false; // 阻止表单提交 }
2. 使用NotesUIDocument操作字段
// 获取当前UI文档对象 var uidoc = new NotesUIDocument(); // 设置字段值 uidoc.FieldSetText("Department", "技术部"); // 获取字段值 var userName = uidoc.FieldGetText("UserName"); // 刷新字段显示 uidoc.Refresh();
3. 动态显隐字段
// 根据下拉框值切换字段可见性 var roleSelect = document.forms[0]["Role"]; var managerField = document.all["Manager"]; managerField.style.display = roleSelect.value === "Manager" ? "block" : "none";
内容的提问来源于stack exchange,提问作者D.Bugger
相关产品推荐
相关产品推荐

