Checkout åbnes i en af to tilstande.
Panel er et indlejret panel, der gengives inde på din side. På computer glider det ind fra højre med en maksimal bredde på pane.width; på mobil glider det op fra bunden. Den besøgende bliver på dit website, og panelet lukkes, når vedkommende trykker på Escape eller klikker på det nedtonede område.
Pop op er et separat browservindue, der centreres på den besøgendes skærm. Klienten overvåger, om vinduet lukkes, så baggrunden kan fjernes.
Indlejret checkout kræver en godkendt oprindelse
Paneltilstand gengiver Entase-checkout i en iframe på dit domæne, så den er kun tilladt for domæner, du udtrykkeligt har godkendt. Tilføj alle domæner, der åbner checkout, under Godkendte oprindelser i Indstillinger → Integrationer – se Integrationer og tilpasning af checkout.
Det har betydning, om præfikset www. er med. Hvis du ikke er sikker på, hvilken form dit website bruger, skal du tilføje begge.
Hvis dit domæne ikke er på listen, virker checkout stadig – den åbnes blot som et pop op-vindue.
Sådan fastlægges 'auto'
Med standardindstillingen checkoutMode: 'auto' træffer klienten beslutningen i denne rækkefølge:
- Ikke HTTPS → pop op. Indlejret checkout bruges aldrig på en usikker side.
localhosteller127.0.0.1→ panel med en advarsel logget i konsollen. Dette gør udviklingen lettere, så du kan bygge med det indlejrede layout; det siger intet om, hvorvidt dit produktionsdomæne er tilladt.- Ellers → klienten spørger Entase, om denne oprindelse må bruge indlejret checkout, og sender
pkfor at identificere kontoen. Hvis svaret omfatter panel, bliver tilstanden panel.
Indtil svaret modtages, er tilstanden pop op. Dette er den adfærd, der højst sandsynligt vil overraske dig: kontrollen er asynkron, så et book()-kald, der udløses umiddelbart ved sideindlæsning – før den besøgende har haft mulighed for at klikke på noget – kan stadig åbne et pop op-vindue på et fuldstændig korrekt konfigureret domæne. I praksis kommer et rigtigt klik altid længe efter, at kontrollen er fuldført. Hvis du åbner checkout automatisk, skal du gennemtvinge tilstanden i stedet for at forlade dig på registrering.
Gennemtving en tilstand
Angiv checkoutMode eksplicit for helt at springe registreringen over:
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY', checkoutMode: 'popup' });Eller tilsidesæt den for en enkelt booking:
entase.book('EVENT_ID', { checkoutMode: 'popup' });At gennemtvinge 'pane' på et domæne, der ikke er en godkendt oprindelse, giver ikke tilladelse – panelet åbnes, men checkout inde i det kan ikke kommunikere med din side. Brug 'popup' som et bevidst valg, og behold 'auto', når du ønsker indlejret checkout, hvor det er tilladt.
En ukendt værdi ignoreres og behandles som 'auto'.
Læs og skift tilstanden under kørsel
entase.getCheckoutMode(); // 'pane' or 'popup' — never 'auto'
entase.setCheckoutMode('popup'); // applies to every later book() callgetCheckoutMode() returnerer den fastlagte tilstand, så den angiver, hvad der faktisk vil ske. Hvis tilstanden sættes tilbage til 'auto', køres registreringen igen.
Blokering af pop op-vinduer
Browsere tillader kun window.open() under en brugerhandling. Kald book() direkte i en klikhandler – ikke efter await, fetch eller setTimeout, hvor handlingen er udløbet, og pop op-vinduet blokeres.
// Blocked: the gesture is gone by the time book() runs.
button.addEventListener('click', async () => {
const event = await fetch('/api/current-event').then(r => r.json());
entase.book(event.id);
});
// Fine: resolve the id first, open on the click.
button.addEventListener('click', () => entase.book(button.dataset.eventId));Dette påvirker kun pop op-tilstand. Paneltilstand opbygger et element på siden og er ikke underlagt dette.