iframe integration
Single entry point:
https://public-web.wast-o.com/?page={page}&embed=1&cityId={cityId}
embed=1 hides the header and chatbot.
page | Content |
|---|---|
calendrier | Collection calendar |
info | Sorting info |
centres-de-tri | Recycling centres |
challenges | Challenges |
calendrier-pdf | Address search → sector → PDF |
| Param | Required | Description |
|---|---|---|
page | yes | Module |
embed | recommended | 1 for embed mode |
cityId | yes | City UUID |
placeId | no | Sector (calendar) |
cityGroupId | no | Widen street search (calendrier-pdf) |
accentColor | no | Accent colour |
placeholder | no | Search placeholder |
year | no | PDF year |
preview | no | PDF preview: below (default), side, none |
previewHeight | no | Preview height in pixels (otherwise full sheet) |
previewWidth | no | Preview width in pixels |
Do not use /calendar (use page=calendrier). There is no /quiz iframe page.
<iframe
src="https://public-web.wast-o.com/?page=calendrier&embed=1&cityId=city-uuid&placeId=place-uuid"
width="100%"
height="600"
style="border: 0; border-radius: 16px"
loading="lazy"
title="Wast'O collection calendar"
></iframe>
Ready-made components: PublicWebEmbed, RecyclingInfoEmbed, RecyclingCentersEmbed, CalendarPdfEmbed (@wasto/react-components).
CSP: frame-src https://public-web.wast-o.com;
The PDF widget posts { source: 'wasto', type: 'wasto:embed-resize', height } so the host can grow the iframe. React / Vue / Svelte wrappers listen automatically. Use React callbacks or the public API for other modules.