客戶端會將其回報的所有內容記錄到瀏覽器主控台,並以 [Entase API] 為前綴。請先開啟主控台。
結帳會以彈出式視窗而非面板開啟
一般原因如下,按值得檢查的先後次序排列:
- 網域不是受信任來源。 請在「設定」→「整合」中加入該網域,並配合你的網站實際使用的
www.前綴 – 請參閱整合與結帳自訂。 - 頁面並非透過 HTTPS 提供。 不安全頁面絕不會使用內嵌結帳。
- 沒有可發佈金鑰。 沒有
pk,客戶端便無法檢查是否允許內嵌結帳,因此會維持使用彈出式視窗。 book()執行得太早。 權限檢查是非同步進行的,在收到結果前會採用彈出式視窗模式。於頁面載入時自動開啟的結帳可能會趕在檢查完成前執行 – 請參閱結帳模式。- 你的內容安全政策封鎖了
connect-src,因此檢查永遠無法完成。主控台會顯示被封鎖的請求。
entase.getCheckoutMode() 會回報已確定的模式,是區分設定問題與時機問題最快的方法。
"Pane checkout mode enabled for localhost"
這在開發期間屬預期情況。客戶端在 localhost 和 127.0.0.1 上會假設採用面板模式,讓你可以根據內嵌版面進行開發;它會顯示警告,因為此假設並不能說明正式環境的情況。發佈前,請將你的實際網域加入受信任來源。
彈出式視窗被封鎖
瀏覽器只允許在使用者操作期間開啟視窗。請在點擊處理常式內同步呼叫 book(),而不是在 await、fetch 或 setTimeout 之後呼叫。請參閱結帳模式。
面板開啟後一片空白
結帳 iframe 已被封鎖。請在內容安全政策的 frame-src 指示詞中允許 https://www.entase.com – 請參閱安裝客戶端。
"Entase is not defined"
你的程式碼執行時,指令碼尚未完成載入。當 client.js 使用 async 或 defer 載入,或放在使用它的指令碼之後時,便會發生這種情況。請等待 entase:ready 事件 – 請參閱安裝客戶端。
"Trying to book an event after the Client has been destroyed"
該實例已呼叫 destroy(),無法再使用。在單頁應用程式中,這通常表示某個元件已卸載其客戶端,但共用參照仍然存在。請為新檢視畫面建立新的實例。
"Entase frame initialization failed. Container not found."
僅適用於嵌入式小工具。設定中的 obj 程式碼與頁面上的任何元素均不相符。容器的 id 必須是 entase_ 後接相同的程式碼,而且必須在小工具初始化前已存在於 DOM 中 – 請檢查是否有拼寫錯誤,或容器是否由你自己的指令碼在稍後才呈現。
只有最後一個事件監聽器會執行
on() 會為每個事件名稱保留一個回呼函式,註冊第二個便會取代第一個。請只註冊一次,並在該回呼函式內分派處理 – 請參閱事件。
彈出式視窗在錯誤的螢幕上開啟
中心點會在建立實例時算出,當訪客移動瀏覽器視窗時不會更新。請在預訂前使用 setTopWindowCenter() 重新計算 – 請參閱方法參考。
訂單中缺少追蹤參數
獨立客戶端不會讀取你頁面的 URL。請自行將參數轉送至 tprm – 請參閱追蹤與同意。請注意,setTracking() 會取代整個物件,而不是將內容合併至物件中,因此稍後的呼叫可能會在無提示下移除較早的參數。