Headless
In some cases, you may want to get the full control over the UI side and still benefit from the core logic.
That’s what the headless version is for: use your own framework, classes, structure, events, …
Note that the cookies-eu-banner’s createCookiesBanner() relies underneath on the headless functions.
See all the options and reference of cookies-eu-banner/headless.
Import
Using a build step
import { createHeadlessCookiesBanner } from "cookies-eu-banner/headless";
CDN or local copy: Global build (import via <script src="...">)
This will expose CookiesEuBanner as global, allowing you to call the createHeadlessCookiesBanner function like this:
<script src="https://unpkg.com/cookies-eu-banner@^3/dist/cookies-eu-banner.global.js"></script>
<!--
Or if you have downloaded the package, you can import it locally instead:
<script src="./your-path/cookies-eu-banner.global.js"></script>
-->
<script>
const cookiesBanner = CookiesEuBanner.createHeadlessCookiesBanner({
// ...
});
cookiesBanner.checkConsentAndShowBanner();
</script>
CDN or local copy: ES Module build (ESM)
<script type="module">
import { createHeadlessCookiesBanner } from "https://unpkg.com/cookies-eu-banner@^3/dist/cookies-eu-banner.headless.js";
// Or if you have downloaded the package, you can import it locally instead:
// import { createHeadlessCookiesBanner } from "./your-path/cookies-eu-banner.headless.js";
const cookiesBanner = createHeadlessCookiesBanner({
// ...
});
cookiesBanner.checkConsentAndShowBanner();
</script>
Example
<div id="my-banner">
<button id="my-accept-button">Accept</button>
<button id="my-reject-button">Reject</button>
</div>
<script type="module">
import { createHeadlessCookiesBanner } from "cookies-eu-banner/headless";
// or from CDN
// import { createHeadlessCookiesBanner } from "https://unpkg.com/cookies-eu-banner@^3/dist/cookies-eu-banner.headless.js";
const listenersController = new AbortController();
/** @type HTMLElement */
const bannerElement = document.querySelector("#my-banner");
const cookiesBanner = createHeadlessCookiesBanner({
showBanner: () => {
// Create or bind to the banner
// Example
bannerElement.style.display = "block";
bannerElement.ariaHidden = "false";
document.querySelector("#my-accept-button").addEventListener(
"click",
() => {
cookiesBanner.setConsent(true);
},
{ signal: listenersController.signal },
);
document.querySelector("#my-reject-button").addEventListener(
"click",
() => {
cookiesBanner.setConsent(false);
},
{ signal: listenersController.signal },
);
},
onAccept: () => {
// Your code to launch when the user accepts cookies
// Your code to hide/remove the banner
bannerElement.remove();
listenersController.abort(); // Remember to remove listeners
},
onReject: () => {
// Your code to launch when the user rejects cookies
// Your code to hide/remove the banner
bannerElement.remove();
listenersController.abort(); // Remember to remove listeners
},
});
// You get the control of when to launch the banner
cookiesBanner.checkConsentAndShowBanner();
</script>