# 疑難排解

> 整合客戶端時最常出現的故障 – 內嵌結帳回退為彈出式視窗、視窗被封鎖、缺少容器及主控台警告。

客戶端會將其回報的所有內容記錄到瀏覽器主控台，並以 `[Entase API]` 為前綴。請先開啟主控台。

## 結帳會以彈出式視窗而非面板開啟

一般原因如下，按值得檢查的先後次序排列：

1. **網域不是受信任來源。** 請在「設定」→「整合」中加入該網域，並配合你的網站實際使用的 `www.` 前綴 – 請參閱[整合與結帳自訂](/organizers/settings/integrations-and-checkout-customization.md)。
2. **頁面並非透過 HTTPS 提供。** 不安全頁面絕不會使用內嵌結帳。
3. **沒有可發佈金鑰。** 沒有 `pk`，客戶端便無法檢查是否允許內嵌結帳，因此會維持使用彈出式視窗。
4. **`book()` 執行得太早。** 權限檢查是非同步進行的，在收到結果前會採用彈出式視窗模式。於頁面載入時自動開啟的結帳可能會趕在檢查完成前執行 – 請參閱[結帳模式](/developers/js-client/checkout-modes.md)。
5. **你的內容安全政策封鎖了 `connect-src`**，因此檢查永遠無法完成。主控台會顯示被封鎖的請求。

`entase.getCheckoutMode()` 會回報已確定的模式，是區分設定問題與時機問題最快的方法。

## "Pane checkout mode enabled for localhost"

這在開發期間屬預期情況。客戶端在 `localhost` 和 `127.0.0.1` 上會假設採用面板模式，讓你可以根據內嵌版面進行開發；它會顯示警告，因為此假設並不能說明正式環境的情況。發佈前，請將你的實際網域加入受信任來源。

## 彈出式視窗被封鎖

瀏覽器只允許在使用者操作期間開啟視窗。請在點擊處理常式內同步呼叫 `book()`，而不是在 `await`、`fetch` 或 `setTimeout` 之後呼叫。請參閱[結帳模式](/developers/js-client/checkout-modes.md)。

## 面板開啟後一片空白

結帳 iframe 已被封鎖。請在內容安全政策的 `frame-src` 指示詞中允許 `https://www.entase.com` – 請參閱[安裝客戶端](/developers/js-client/installing-the-client.md)。

## "Entase is not defined"

你的程式碼執行時，指令碼尚未完成載入。當 `client.js` 使用 `async` 或 `defer` 載入，或放在使用它的指令碼之後時，便會發生這種情況。請等待 `entase:ready` 事件 – 請參閱[安裝客戶端](/developers/js-client/installing-the-client.md)。

## "Trying to book an event after the Client has been destroyed"

該實例已呼叫 `destroy()`，無法再使用。在單頁應用程式中，這通常表示某個元件已卸載其客戶端，但共用參照仍然存在。請為新檢視畫面建立新的實例。

## "Entase frame initialization failed. Container not found."

僅適用於嵌入式小工具。設定中的 `obj` 程式碼與頁面上的任何元素均不相符。容器的 id 必須是 `entase_` 後接相同的程式碼，而且必須在小工具初始化前已存在於 DOM 中 – 請檢查是否有拼寫錯誤，或容器是否由你自己的指令碼在稍後才呈現。

## 只有最後一個事件監聽器會執行

`on()` 會為每個事件名稱保留一個回呼函式，註冊第二個便會取代第一個。請只註冊一次，並在該回呼函式內分派處理 – 請參閱[事件](/developers/js-client/events.md)。

## 彈出式視窗在錯誤的螢幕上開啟

中心點會在建立實例時算出，當訪客移動瀏覽器視窗時不會更新。請在預訂前使用 `setTopWindowCenter()` 重新計算 – 請參閱[方法參考](/developers/js-client/methods.md)。

## 訂單中缺少追蹤參數

獨立客戶端不會讀取你頁面的 URL。請自行將參數轉送至 `tprm` – 請參閱[追蹤與同意](/developers/js-client/tracking-and-consent.md)。請注意，`setTracking()` 會取代整個物件，而不是將內容合併至物件中，因此稍後的呼叫可能會在無提示下移除較早的參數。
