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:
<Frame>component - A React component that conditionally renders children based on consent- HTML
data-categoryattribute - For raw<iframe>elements outside of React
Frame Component
The <Frame> component wraps content that requires consent. Children are only mounted when the specified category has consent. When consent is not granted, a placeholder is shown instead.
Custom Placeholder
Replace the default placeholder with your own UI:
Compound Components
Build custom placeholder layouts using compound components:
HTML Attribute Approach
For iframes outside of React (e.g., CMS content, server-rendered HTML), add data-category and use data-src instead of src:
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 separately from the Frame component: