交互: Click Script 点击脚本
点击时执行 JavaScript,可通过 Condition 限制执行,用于确认、Tag 读写、组件样式和页面跳转等自定义动作。
功能说明
Click Script 位于 Interactions,适用于内置行为未覆盖的自定义点击逻辑。脚本可访问 object、objects、event、tag、page、presentation、shape、hqVisuDesigner 和 globals。
字段配置
General 可修改 Behavior Name,Component Name 只读;Trigger 固定为 Click。Interaction Setup 包含以下字段:
- Click Script:点击时执行的脚本,可包含条件判断、读写标签、修改组件和弹窗等多行逻辑。使用 return 可提前退出或返回结果。
- Condition:决定是否执行本次点击,默认 true。填写能立即算出 true / false 的表达式,例如 ReadTagBoolean(...) 或比较式;结果为 false 时跳过本次操作。
- 脚本里可用的标签方法:ReadTagBoolean/Integer/Double/String;真实用户点击脚本还可调用 WriteTagBoolean/Integer/Double/String。组件和导航使用 hqVisuDesigner(setComponentFill / setComponentText / setComponentVisible / openPage / openScreen 等)。
- 异步方法(fetch、setTimeout、setInterval 等)只能写在 Click Script 这种脚本体里,不要写进 Condition(同步求值位)。
- 脚本快捷方法按钮会按当前光标所在框给片段:在 Click Script 给完整脚本片段,在 Condition 给短表达式片段。
JavaScriptJavaScript
// Click Script
var v = prompt("输入设定值", "0");
if (v === null || v === "") { return; }
var n = parseInt(v, 10);
if (isNaN(n)) { alert("请输入整数"); return; }
WriteTagInteger("PLC_LINE01.PUMP01.SETPOINT", n);
// Condition
ReadTagBoolean("PLC_LINE01.PUMP01.ALLOW_OP", false)
适用场景
用于一次点击执行多个步骤或自定义动作,例如:
- 确认后再下发:先 confirm/prompt 让操作员确认或输入,再 WriteTagInteger/WriteTagBoolean 写入。
- 点击联动多个组件:一次点击里改若干组件的填充色、文本或显示隐藏(hqVisuDesigner.setComponentFill / setComponentText / setComponentVisible)。
- 带前置条件的操作按钮:用 Condition 接上“允许操作/已登录/在手动模式”等标签,未满足时这次点击直接不执行。
限制与常见问题
常见注意事项:
- 写入仍受宿主的权限校验、确认、原因记录和异步处理约束;调用 WriteTag 不代表设备已成功接收,应在运行平台核对结果。
- Condition 必须同步返回判断结果,不支持 fetch() 等返回 Promise 的异步调用。
- 多行 Click Script 可自然执行结束,无需在末尾添加 return;用户取消等需要提前退出的分支可使用 return。
- 跳转不要写相对磁盘路径:同包用 hqVisuDesigner.openPage("页名"),跨画面包用 hqVisuDesigner.openScreen("SCREEN_CODE"),外链才用网址。
图示 1: Click Script 编辑器
在 Click Script 框写点击时运行的脚本,用 Condition 控制是否允许点击。