JS-rajapinta
import { getConsent, getConsentRecord, setConsent, onConsentChange, whenAccepted, gateScript,} from 'astro-cookie-consent';getConsent(category?, options?)
Osio nimeltä “getConsent(category?, options?)”getConsent(); // 'accept' | 'decline' | null — reads the 'all' categorygetConsent('analytics'); // 'accept' | 'decline' | null for a specific categoryPalauttaa null, jos mitään ei ole tallennettu tai tallennettu tietue on vanhentunut.
getConsentRecord(options?)
Osio nimeltä “getConsentRecord(options?)”getConsentRecord(); // { categories: {...}, timestamp } | nullRaaka 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(value)
Osio nimeltä “setConsent(value)”setConsent('accept'); // sets it programmatically and broadcasts the changesetConsent({ analytics: true, marketing: false }); // per-category formonConsentChange(callback)
Osio nimeltä “onConsentChange(callback)”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(callback, category?)
Osio nimeltä “whenAccepted(callback, category?)”whenAccepted(() => { /* fires immediately if already accepted, or once accepted */});whenAccepted(() => { /* same, scoped to one category */}, 'analytics');Ei koskaan kutsu takaisin hylkäyksen yhteydessä.
gateScript(options)
Osio nimeltä “gateScript(options)”gateScript({ src: '...', onLoad: () => {} }); // load a script only after consentgateScript({ 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.
Sisällön näyttäminen ehdollisesti
Osio nimeltä “Sisällön näyttäminen ehdollisesti”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ä.
Vanheneminen
Osio nimeltä “Vanheneminen”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.