Hi everyone,
I’m migrating a database app to the New Record Experience and I’ve hit what looks like a regression in the HTML rendering of calculation fields: any <iframe> in the calculation output disappears. It renders correctly in the classic record.
Setup:
New record experience enabled for that app + Calculation fields with output type None (untyped) returning HTML. No JavaScript involved — I’m aware that inline JS such as onclick is intentionally not supported, and I’m not using it.
What I see (same app, same record, both layouts):
| Feature | Classic record | New Record |
|---|---|---|
<div> + flex + <span> + inline styles |
✔ renders | ✔ renders |
<svg> + inline styles |
✔ renders | ✔ renders |
<a href="…"> wrapping content |
✔ renders | ✔ renders |
<iframe src="https://share.tapeapp.com/…"> (a Tape share link) |
✔ renders | ✘ nothing |
<iframe src="data:text/html;charset=utf-8,…"> |
✔ renders | ✘ nothing, but the block still reserves the iframe's 500px of height |
Two things I find telling:
The reserved height suggests the <iframe> element is still being inserted into the DOM, so this doesn’t look like the HTML sanitizer dropping the tag — it looks like the frame is never allowed to load (a framing restriction on the rendering context of the new layout, e.g. a CSP frame-src / sandbox block).The first iframe points at tapeapp.com’s own share domain. So this isn’t a third-party site refusing to be framed — the new layout doesn’t frame Tape’s own page either (I tried to confirm it from the DevTools console, but I couldn’t capture a definitive message).
Minimal reproduction — two calculation fields, output type "None":
// 1) iframe with an https URL: renders in classic, nothing in the new record experience<iframe src="[https://share.tapeapp.com/<YOUR_SHARE_ID>?prefill.single_line_text=${Record_ID}"](https://share.tapeapp.com/%3CYOUR_SHARE_ID%3E?prefill.single_line_text=%24%7BRecord_ID%7D%22) width="100%" height="600px"></iframe>
// 2) iframe with a data: URL: same behaviour<iframe src="data:text/html;charset=utf-8,%3Ch1%3EHello%3C%2Fh1%3E" width="100%" height="300px"></iframe>
Why it matters to me:
Embedding via <iframe> is a well-established pattern in this community (Tape share links and forms, Fillout/Jotform forms, maps, external dashboards, mini-apps). Most of those threads predate the new record experience, and I have several fields per app relying on it — so right now this is what stops me from moving apps to the new layout. For instance I have a some “embedded” Tape forms I need to use (and can’t if I change).
Questions:
Is <iframe> intentionally not rendered in the New Record Experience, or is it a regression?
If it’s intentional:
What is the supported way to embed external content (or a Tape share link) in a calculation field in the new layout?
If it's a regression: Is it the same family as the recent inline SVG issue Tim confirmed and fixed?
Thank you very much.
Best,
R.J.