Siirry sisältöön
Aloita

JS-rajapinta

import {
getConsent,
getConsentRecord,
setConsent,
onConsentChange,
whenAccepted,
gateScript,
} from 'astro-cookie-consent';
getConsent(); // 'accept' | 'decline' | null — reads the 'all' category
getConsent('analytics'); // 'accept' | 'decline' | null for a specific category

Palauttaa null, jos mitään ei ole tallennettu tai tallennettu tietue on vanhentunut.

getConsentRecord(); // { categories: {...}, timestamp } | null

Raaka tallennettu tietue – jokaisen kategorian nykyinen arvo sekä sen asettamisajankohta. Palauttaa null, jos tietue on vanhentunut tai sitä ei ole. Hyödyllinen kirjausketjuna (GDPR:n 7 artiklan 1 kohdan osoitusvelvollisuus) – katso GDPR-ominaisuudet.

setConsent('accept'); // sets it programmatically and broadcasts the change
setConsent({ analytics: true, marketing: false }); // per-category form
onConsentChange((record) => {
// record.categories is the full map, e.g. { all: true }
// or { analytics: true, marketing: false }
});

Suoritetaan jokaisen tulevan muutoksen yhteydessä koko tietueen kanssa (ei vain yhden kategorian).

whenAccepted(() => {
/* fires immediately if already accepted, or once accepted */
});
whenAccepted(() => {
/* same, scoped to one category */
}, 'analytics');

Ei koskaan kutsu takaisin hylkäyksen yhteydessä.

gateScript({ src: '...', onLoad: () => {} }); // load a script only after consent
gateScript({ src: '...', category: 'analytics' }); // same, scoped to one category
Asetus Tyyppi Oletus Kuvaus
src string — Pakollinen. Skriptin URL, joka ladataan hyväksynnän jälkeen.
async boolean true Asettaa script.async-arvon.
onLoad function — Kutsutaan, kun skripti on latautunut.
category string 'all' Mikä kategoria on hyväksyttävä, jotta skripti lisätään.

Ei koskaan lisää skriptiä ennen kuin kävijä hyväksyy, eikä koskaan lisää sitä kahdesti.

gateScript kattaa kolmannen osapuolen skriptin lataamisen. Jos haluat näyttää tai piilottaa oman käyttöliittymäsi suostumuksen perusteella – widgetin, ”hallitse evästeitä” -linkin, upotuksen paikkamerkin –, yhdistä getConsent() ja onConsentChange() suoraan. Juuri tätä mallia käyttää etusivun ”analytiikkawidget”, joka reagoi reaaliajassa, kun vaihdat banneria:

<div id="analytics-widget">Waiting for consent…</div>
<script>
import { getConsent, onConsentChange } from 'astro-cookie-consent';
const widget = document.getElementById('analytics-widget');
const render = (value: 'accept' | 'decline' | null) => {
if (!widget) return;
widget.textContent =
value === 'accept'
? 'Analytics widget — visible'
: value === 'decline'
? 'Hidden until you accept analytics'
: 'Waiting for consent…';
};
render(getConsent('analytics')); // set the initial state on load
onConsentChange(() => render(getConsent('analytics'))); // update on every change
</script>

getConsent() latauksen yhteydessä hoitaa palaavan kävijän, joka on jo valinnut; onConsentChange() hoitaa sen, että hän muuttaa mieltään myöhemmin uudelleenavauspainikkeella – tarvitset molemmat, jotta sisältö vastaa aina nykyistä valintaa.

Laajempi versio tästä – paikkamerkki ”Ota käyttöön” -painikkeella kolmannen osapuolen upotukselle – löytyy sivulta Yksittäisten widgetien poistaminen käytöstä.

Tallennettu valinta vanhenee expiryDays-ajan jälkeen (oletuksena 365, määritettävissä <ConsentBanner />-komponentin expiryDays-propsilla tai getConsent/getConsentRecord-funktioiden expiryDays-asetuksella) – sen jälkeen molemmat palauttavat taas null, ja banneri näytetään seuraavalla latauksella uudelleen.