# トラブルシューティング

> クライアントの統合時によく発生する障害 – インラインチェックアウトがポップアップにフォールバックする、ウィンドウがブロックされる、コンテナが見つからない、コンソールに警告が表示される – について説明します。

クライアントは、ブラウザコンソールに報告するすべての内容を `[Entase API]` のプレフィックス付きでログに記録します。まずコンソールを開いてください。

## チェックアウトがパネルではなくポップアップで開く

通常の原因を、確認する順に示します。

1. **ドメインが信頼済みオリジンに登録されていません。** 「設定」→「連携」で追加し、サイトが実際に配信している `www.` プレフィックスと一致させてください – [連携とチェックアウトのカスタマイズ](/organizers/settings/integrations-and-checkout-customization.md)を参照してください。
2. **ページが HTTPS で配信されていません。** 安全でないページでは、インラインチェックアウトは使用されません。
3. **公開可能キーがありません。** `pk` がなければ、クライアントはインラインチェックアウトが許可されているか確認できないため、ポップアップのままになります。
4. **`book()` の実行が早すぎます。** 許可確認は非同期で行われ、応答が返るまではポップアップモードになります。ページの読み込み時に自動で開くチェックアウトは、この確認より先に実行されることがあります – [チェックアウトモード](/developers/js-client/checkout-modes.md)を参照してください。
5. **Content Security Policy によって `connect-src` がブロックされています。** この場合、確認は完了しません。コンソールにブロックされたリクエストが表示されます。

`entase.getCheckoutMode()` は解決されたモードを返します。設定の問題とタイミングの問題を最も簡単に切り分ける方法です。

## "Pane checkout mode enabled for localhost"

開発中には想定どおりの動作です。クライアントは `localhost` と `127.0.0.1` ではパネルモードであると見なし、インラインレイアウトに対して開発できるようにします。この前提は本番環境について何も保証しないため、警告が表示されます。本番リリース前に、実際のドメインを信頼済みオリジンに追加してください。

## ポップアップがブロックされる

ブラウザがウィンドウを開くことを許可するのは、ユーザー操作中のみです。`await`、`fetch`、`setTimeout` の後ではなく、クリックハンドラー内で同期的に `book()` を呼び出してください。[チェックアウトモード](/developers/js-client/checkout-modes.md)を参照してください。

## パネルが空のまま開く

チェックアウトの iframe がブロックされています。Content Security Policy の `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()` はイベント名ごとに 1 つのコールバックを保持し、2 つ目を登録すると最初のものが置き換えられます。1 回だけ登録し、そのコールバック内で処理を振り分けてください – [イベント](/developers/js-client/events.md)を参照してください。

## ポップアップが間違った画面に開く

中心点はインスタンス作成時に計算され、訪問者がブラウザウィンドウを移動しても更新されません。予約前に `setTopWindowCenter()` で再計算してください – [メソッドリファレンス](/developers/js-client/methods.md)を参照してください。

## トラッキングパラメータが注文に含まれない

スタンドアロンクライアントは、ページの URL を読み取りません。パラメータを自分で `tprm` に渡してください – [トラッキングと同意](/developers/js-client/tracking-and-consent.md)を参照してください。`setTracking()` はオブジェクトにマージするのではなく、オブジェクト全体を置き換えることに注意してください。そのため、後から呼び出すと、以前のパラメータが気付かないうちに削除される可能性があります。
