Open Page as Popup 打开页面弹窗

Open Page as Popup 是专门的弹窗行为,不等同于 Open Link。它让运行端在当前页面上方打开另一个 Page Code,对话框、设备详情、确认页和参数页都适合使用。主页面保持原位;弹窗关闭后回到下方页面。

交互

交互: Open Page as Popup 打开页面弹窗

点击组件后,把当前 PPT 中的另一个导出页面作为弹窗打开;主页面不跳走,弹窗页面继续使用自己的 HTML、SVG、JavaScript 和图片资源。

功能说明

Open Page as Popup 是专门的弹窗行为,不等同于 Open Link。它让运行端在当前页面上方打开另一个 Page Code,对话框、设备详情、确认页和参数页都适合使用。主页面保持原位;弹窗关闭后回到下方页面。

使用方法:先完成三个主要选择

把行为拖到用于打开弹窗的按钮或图形上,编辑器按结果顺序给出三步:

  • 1. Choose the popup page:从当前 PPT 选择页面,或输入已经存在的导出 Page Code。Page Code 只能使用有效导出文件基础名。
  • 2. Choose what users see:Fit page content(推荐)会裁去透明边距并适配主要内容;Show the full page canvas 会显示完整页面画布。
  • 3. Choose how it closes:Block the page behind 控制是否为模态;可选择 Esc closes the popup 和 Clicking outside closes it。点击外部关闭只在阻止下层页面操作时可用。
  • Behavior is active 是绑定本身的总开关;Enabled expression 是运行时条件;还可配置启用时手型光标和禁用时隐藏。

Advanced options 什么时候使用

固定页面和固定参数优先用基础字段;只有目标或参数必须在运行时计算时才打开高级选项。

  • Use a dynamic Page Code expression:用 JavaScript 表达式返回 Page Code;启用后必须填写有效表达式。
  • Page parameters (JSON object):传给弹窗页的静态 JSON 对象,例如 {"PLC":"PLC_LINE01","Device":"PUMP_01"};数组不是合法的顶层参数对象。
  • Build page parameters with an expression:运行时返回参数对象,适合从页面变量或当前设备上下文组装参数。
  • Background behind popup:Dim the page behind 或 Keep the page visible;Dim 模式可调整 0% 到 85% 的强度。
  • Allow the same popup to open more than once:允许同一 Page Code 同时存在多个实例;默认关闭以避免重复弹窗。
// 静态页面 + 静态参数
Page Code: device_details
Page parameters: {"PLC": "PLC_LINE01", "Device": "PUMP_01", "active": true}

// 动态页面示例
selectedDeviceType === "pump" ? "pump_details" : "valve_details"

弹窗参数如何传入、读取和返回结果

弹窗参数与 Open Link 的有序参数形式不同:弹窗编辑器要求一个对象,因此不能表达重复 Key。为兼容宿主弹窗和本地回退,参数值使用字符串、数字、布尔值或 null;目标弹窗页仍用 GetPageParameter、GetPageParameterValues 或 GetPageParameters 读取,读取结果按字符串处理。

  • 静态参数:直接填写 JSON 对象。
  • 动态参数:Build page parameters with an expression 返回一个对象;不要返回数组、Promise 或 DOM 对象。
  • 目标页读取:在弹窗页 Page Script 中调用 GetPageParameter*。
  • 关闭结果:Close Current Popup 的 Result expression 是反向返回给打开方的结果,不属于页面查询参数。
  • 参数仅用于页面上下文,不能绕过宿主权限,也不能扩大 Tag 访问范围。
// 弹窗页 Page Script
var plc = GetPageParameter("PLC", "");
var device = GetPageParameter("Device", "");
var activeText = GetPageParameter("active", "false");
var active = activeText === "true";

交付边界与常见错误

弹窗目标仍是画面包里的导出页面。新增、删除、重命名弹窗页或修改它的公共资源后,应执行整包导出,不能只发布打开按钮所在页。不要用 Open Link 模拟同页弹窗,也不要把页面标题当作任意 URL;优先从页面列表选择,让 Page Code 与导出清单保持一致。

Open Page as Popup 行为编辑器
图示 1: Open Page as Popup 编辑器

先选择弹窗 Page Code、内容显示方式和关闭方式,高级选项只处理动态目标、参数与背景。