# Fejlfinding

> De fejl, der oftest opstår ved integration af klienten – inline-checkout, der falder tilbage til et pop op-vindue, blokerede vinduer, manglende containere og konsoladvarsler.

Klienten logger alt, den rapporterer, til browserkonsollen med præfikset `[Entase API]`. Åbn først konsollen.

## Checkout åbner som et pop op-vindue i stedet for et panel

Den sædvanlige årsag, i den rækkefølge det er værd at undersøge:

1. **Domænet er ikke en betroet oprindelse.** Tilføj det under Indstillinger → Integrationer, og sørg for, at det matcher det `www.`-præfiks, som dit website faktisk bruger – se [Integrationer og tilpasning af checkout](/organizers/settings/integrations-and-checkout-customization.md).
2. **Siden leveres ikke via HTTPS.** Inline-checkout bruges aldrig på en usikker side.
3. **Ingen publicerbar nøgle.** Uden `pk` kan klienten ikke kontrollere, om inline-checkout er tilladt, så den bliver ved med at bruge et pop op-vindue.
4. **`book()` blev kørt for tidligt.** Tilladelseskontrollen er asynkron, og tilstanden er pop op-vindue, indtil den svarer. En checkout, der åbnes automatisk ved sideindlæsning, kan nå at køre før den – se [Checkout-tilstande](/developers/js-client/checkout-modes.md).
5. **`connect-src` blokeres af din Content Security Policy**, så kontrollen aldrig fuldføres. Konsollen viser den blokerede anmodning.

`entase.getCheckoutMode()` rapporterer den valgte tilstand og er den hurtigste måde at skelne konfigurationsproblemer fra tidsproblemer.

## "Panel-checkout-tilstand aktiveret for localhost"

Forventet under udvikling. Klienten antager paneltilstand på `localhost` og `127.0.0.1`, så du kan udvikle mod det integrerede layout, og advarer, fordi den antagelse ikke siger noget om produktion. Tilføj dit rigtige domæne til betroede oprindelser, før du udgiver.

## Pop op-vinduet blokeres

Browsere tillader kun, at et vindue åbnes under en brugerhandling. Kald `book()` synkront inde i klikhandleren, ikke efter et `await`, et `fetch` eller et `setTimeout`. Se [Checkout-tilstande](/developers/js-client/checkout-modes.md).

## Panelet åbner tomt

Checkout-iframe'en blev blokeret. Tillad `https://www.entase.com` i `frame-src`-direktivet i din Content Security Policy – se [Installation af klienten](/developers/js-client/installing-the-client.md).

## "Entase er ikke defineret"

Scriptet var ikke færdigindlæst, da din kode kørte. Det sker, når `client.js` indlæses med `async` eller `defer`, eller placeres efter scriptet, der bruger det. Vent på hændelsen `entase:ready` – se [Installation af klienten](/developers/js-client/installing-the-client.md).

## "Forsøg på at booke et event, efter klienten er blevet destrueret"

`destroy()` blev kaldt på instansen, og den kan ikke længere bruges. I en single-page-applikation betyder det som regel, at en komponent fjernede sin klient, mens en delt reference blev stående. Opret en ny instans til den nye visning.

## "Initialisering af Entase-frame mislykkedes. Containeren blev ikke fundet."

Kun indlejringswidget. `obj`-koden i konfigurationen matcher ikke noget element på siden. Containerens id skal være `entase_` efterfulgt af den samme kode, og den skal findes i DOM'en, før widgetten initialiseres – kontrollér for en tastefejl eller en container, som først renderes senere af dine egne scripts.

## Kun den seneste eventlytter kører

`on()` gemmer ét callback pr. hændelsesnavn, og registrering af et andet erstatter det første. Registrer én gang, og fordel derfra inde fra callbacket – se [Hændelser](/developers/js-client/events.md).

## Pop op-vinduet åbner på den forkerte skærm

Midtpunktet beregnes, når instansen oprettes, og opdateres ikke, når den besøgende flytter browservinduet. Genberegn det før booking med `setTopWindowCenter()` – se [Metodereference](/developers/js-client/methods.md).

## Sporingsparametre mangler i ordrer

Den selvstændige klient læser ikke URL-adressen på din side. Send selv parametrene videre til `tprm` – se [Sporing og samtykke](/developers/js-client/tracking-and-consent.md). Bemærk, at `setTracking()` erstatter hele objektet i stedet for at sammenflette det, så et senere kald lydløst kan fjerne tidligere parametre.
