知識中心 網誌
brightness_6
  • 主題
  • brightness_6 自動
  • brightness_7 淺色
  • brightness_2 深色
language 中文 (香港) ZH (HK)
語言 ✕
  • Dansk
  • Deutsche
  • Eesti
  • English
  • Español
  • Français
  • Hrvatski
  • Italiano
  • Latviešu
  • Lietuvių
  • Lëtzebuergesch
  • Magyar
  • Malti
  • Nederlands
  • Norsk
  • Polski
  • Português (BR)
  • Português (PT)
  • Română
  • Slovenčina
  • Slovenščina
  • Srpski
  • Suomi
  • Svenska
  • Türkçe
  • Čeština
  • Ελληνικά
  • Български
  • Русский
  • Українська
  • 中文 (香港)
  • 日本語
登入
開發人員 網誌
登入
首頁 chevron_right 開發人員 chevron_right JavaScript 用戶端 chevron_right 事件
search 搜尋
menu_book 開發人員
JavaScript 用戶端
  • 概覽
  • 安裝用戶端
  • 建構函式選項
  • 結帳模式
  • 開啟結帳頁
  • 事件
  • 方法參考
  • 追蹤與同意
  • 進階嵌入選項
  • 疑難排解
REST API (v2)
PHP SDK
Node.js SDK
Python SDK
WordPress 外掛程式
JavaScript 用戶端

事件

使用 on() 和 off() 監聽結帳流程的開啟、關閉及同意記錄,並了解每個事件只能有一個監聽器的規則。

description 以 Markdown 檢視

結帳流程會向你的頁面回報其正在進行的操作。使用 on() 訂閱:

JavaScript
123
entase.on('checkout.ready', payload => {
  console.log('checkout open for', payload.context.eventID);
});

每個事件名稱只能有一個監聽器

on() 會為每個事件名稱儲存一個回呼函式。為同一名稱註冊第二個回呼函式時,會取代第一個 – 而不會新增至其中:

JavaScript
12
entase.on('checkout.closed', a);
entase.on('checkout.closed', b);   // a is gone; only b runs

off() 會移除為某個名稱註冊的任何內容。它會忽略你傳入的任何回呼函式,因此 off('checkout.closed', b) 和 off('checkout.closed') 的作用相同。

如果頁面的多個部分需要對同一事件作出反應,請註冊一個回呼函式,並從中分派處理。

一次訂閱多個事件

兩個方法都接受以空格分隔的字串或名稱陣列,並為每個名稱註冊相同的回呼函式:

JavaScript
12345
entase.on('checkout.ready checkout.closed', payload => {
  console.log(payload.name);
});

entase.off(['checkout.ready', 'checkout.closed']);

負載資料

每個回呼函式都會接收一個物件:

欄位類型說明
namestring事件名稱;當一個回呼函式處理多個事件時很有用。
contextobject包含 eventID – 此結帳流程所屬的活動。
dataobject事件專屬的詳細資料。

可用事件

名稱觸發時機
checkout.ready結帳流程已載入並可供互動。此時用戶端亦會交回你傳遞給 book() 的 clientContext。
checkout.closed結帳流程已關閉。用戶端會移除面板或視窗,並清除背景遮罩。
checkout.consent訪客已回覆條款通知。接受時,data.consent 為 true;用戶端會記住此選擇,以便下次略過此步驟。
JavaScript
1234567
entase.on('checkout.closed', () => {
  document.body.classList.remove('checkout-open');
});

entase.on('checkout.consent', payload => {
  if (payload.data.consent) console.log('terms accepted');
});

監聽器會跨個別預訂持續保留

監聽器屬於實例,而非某次預訂。建立用戶端後只需註冊一次,它們便會套用至每次 book() 呼叫。使用 payload.context.eventID 區分不同預訂:

JavaScript
12345
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' });

entase.on('checkout.closed', payload => {
  refreshAvailability(payload.context.eventID);
});

呼叫 destroy() 會停止所有監聽器 – 實例會完全停止監聽來自結帳流程的訊息。

來自其他來源的訊息會被忽略

用戶端只接受來自 Entase 結帳流程來源的訊息,因此頁面上不相關的 postMessage 流量絕不會傳送到你的回呼函式。

上一頁 開啟結帳頁 下一頁 方法參考
這篇文章對你有幫助嗎?
本頁內容
  • 每個事件名稱只能有一個監聽器
  • 一次訂閱多個事件
  • 負載資料
  • 可用事件
  • 監聽器會跨個別預訂持續保留
  • 來自其他來源的訊息會被忽略
了解如何使用 Entase。
© 2026 Entase, Inc.

Entase

  • 活動
  • 註冊

平台

  • 收費
  • 全球覆蓋
  • 整合
  • 行銷工具
  • 預約工具
  • 協作

使用案例

  • 劇場及歌劇
  • 音樂會及派對
  • 展覽、交易會及節慶
  • 博物館及景點
  • 導賞團及體驗
  • 工作坊及研討會
  • 募款
  • 錦標賽

知識中心

  • 主辦單位
  • 參加者
  • 開發人員
  • 網誌

法律資訊

  • 使用條款
  • 私隱政策
  • Cookie 政策
search 有問題嗎? 搜尋
auto_awesome LLM? 閱讀 llms.txt
support_agent 需要協助? 開始聊天