Iframe Blocking

Block embedded content (YouTube, social widgets, maps) until users grant consent for the appropriate category.

Embedded iframes from third parties (YouTube, Google Maps, social media widgets) can set cookies and track users without their consent. c15t provides two approaches to gate iframes behind consent:

  1. <Frame> component - A React component that conditionally renders children based on consent
  2. HTML data-category attribute - For raw <iframe> elements outside of React

HTML Attribute Approach

For vanilla JavaScript, use data-category and data-src attributes on <iframe> elements:

When consent for the specified category is granted, c15t automatically swaps data-src to src, loading the iframe. When consent is revoked, src is moved back to data-src.

Dynamic Iframes

c15t uses a MutationObserver to watch for dynamically added iframes. Any iframe with data-category added to the DOM after initialization is automatically processed.

Initializing the Iframe Blocker

The iframe blocker for HTML attributes needs to be initialized after the runtime is created:

The blocker will scan the DOM for all <iframe> elements with data-category and manage their src/data-src based on consent state. It also sets up a MutationObserver to handle iframes added later.

Custom Placeholder

Build a consent placeholder with vanilla DOM that's shown when consent is not granted:

Cleanup

Destroy the iframe blocker when it's no longer needed (e.g., on page teardown in a SPA):

API Reference

Loading…