表单

/

4 分钟阅读

嵌入托管表单

将 Zalify 表单嵌入页脚、侧栏或落地页,复用列表订阅和线索追踪流程。

托管内嵌表单直接显示在页面指定位置,而不是弹出。它与弹窗共用编辑器、列表收集和线索追踪,区别在于显示方式。

内嵌表单与弹窗

项目弹窗内嵌表单
位置居中浮层或角落卡片指定页面容器
样式隔离Shadow DOM默认不隔离,页面 CSS 直接生效
加载时机首次 show_popup首次 display_form
运行时popup.jsform.js

必须设置为内嵌形式

在 Zalify 编辑器中选择 inline,使表单编译为 surface: "form"(display: { mode: "inline" })。编译为 modal 或 corner 的弹窗不能直接走内嵌显示路径。

开始前

  • 已创建并设置为 inline 的表单。
  • 如需收集订阅,准备客户列表。
  • 页面上有可通过 CSS 选择器定位的稳定容器。

添加挂载位置

在需要显示的位置加入:

<div id="zalify-footer-signup"></div>

配置 display_form 操作

在 Zalify 中配置:

{
  "type": "display_form",
  "params": {
    "form_id": "clniphba00xwkok1qmkyip597",
    "selector": "#zalify-footer-signup",
    "mode": "replace"
  }
}
  • form_id: 必填,要展示的表单。
  • selector: 必填,挂载容器的 CSS 选择器。
  • mode: 可选,replace(默认)、append 或 prepend。
  • shadow: 可选,默认 false;需要样式隔离时设为 true。

支持客户端渲染页面

运行时会短暂等待选择器出现,因此也能挂载到 React、Vue 等框架动态生成的容器。

加载流程

首次执行 display_form 时:

1

从 https://cdn.zalify.com 按需加载 form.js。

2

从 https://app.zalify.com/api/v1/forms/<wid>/<form_id> 获取文档。

3

按指定 mode 将 HTML 挂载到容器。

4

使用与弹窗相同的提交机制连接字段。

使用页面样式

默认没有 Shadow DOM,主题 CSS 可直接影响表单,使它融入页面。如已有样式干扰布局,可设置 shadow: true 隔离。

收集线索

与弹窗表单共用提交流程:

  • 标准字段包括 email、phone、firstName、lastName、language、emailMarketingConsent、smsMarketingConsent。其他字段不参与标准联系人映射;原始提交载荷保存在 Submission 中。
  • 订阅时包含 subscribe: { list_id, email_marketing_consent },可加入列表并接续自动化流程。
  • 提交时先触发 form_submitted,POST 到 https://reach.zalify.com/v1/public/unisubmit,收到 2xx 后触发 lead。
  • data-zalify-form-state 按 idle → submitting → success | error 更新,可据此设置 CSS。

事件和状态详见弹窗表单说明。

授权与测试

  • 配置 consentRequired=true 后,授权前不会渲染或提交。此前的 display_form 调用进入队列,授权后处理,见授权配置。
  • 预览模式 ?zalify-preview=true 会跳过授权限制,便于内部测试。

内容安全策略

如启用 CSP,请允许 script-src https://cdn.zalify.com,确保 form.js 能加载。

下一步