Rendered HTML Viewer

Paste any HTML (an email template, a scraped page fragment, a snippet from a documentation example) and click Render to see it drawn in a sandboxed iframe. The frame runs with the browser’s strictest sandbox, so scripts do not execute, forms cannot submit and the markup cannot navigate away or touch the page around it. It is the fastest way to answer “what does this markup actually look like” without setting up a staging server.

How to preview HTML

  1. 1

    Paste your HTML

    Drop a full document or a loose fragment into the source box. Whatever you paste is exactly what gets rendered, as written.

  2. 2

    Click Render

    The viewer writes your HTML into a sandboxed iframe and shows the result right on the page.

  3. 3

    Read the preview

    The frame paints your markup the way a browser would: headings, tables, lists, inline styles and SVG all show up.

  4. 4

    Adjust and render again

    Tweak the source and render as many times as you like to compare how each version looks.

Why the frame is sandboxed

Pasted HTML can contain anything: <script> tags, an <img onerror="..."> trick, a form that posts somewhere, or an <iframe> that loads another site. To keep any of that from touching the page, the preview is written into an <iframe sandbox> with an empty sandbox attribute, the most restrictive setting there is. In that mode the browser blocks script execution, form submission, pop-ups, top-level navigation and same-origin access all at once. You see the visual result without giving the markup any power.

Because scripts never run, anything that depends on JavaScript (a web component that hydrates on load, a chart that draws itself, a framework that mounts into an empty <div>) shows only its static markup, not its scripted result. That is a deliberate trade: a safe, predictable preview over an interactive one.

What the viewer renders well

Content type Notes
Email HTML Table-based layouts and inline styles render as most clients draw them
Blog post body Headings, lists, blockquotes and images all paint without any scripting
Scraped fragment Shows whether the markup you grabbed is complete enough to stand on its own
Inline SVG Draws at any size, which makes it handy for checking an icon
Static component markup The markup renders; the JavaScript behaviour does not

Good uses for this tool

  • Email template QA. Paste the export from your email builder and see the layout without sending yourself a test message.
  • Scraped-data sanity checks. You grabbed some innerHTML from a page: does it render back into something sensible? If not, the fragment is probably incomplete.
  • Markdown-to-HTML review. Run text through a converter (the HTML to Markdown tool round-trips it) and preview the resulting HTML here.
  • Learning and teaching. Paste an example from documentation and watch exactly how a browser lays it out.

Things to keep in mind

  • Relative URLs. Images and stylesheets referenced by a relative path like /assets/logo.png have no server to resolve against, so they will not load. Use an absolute https:// URL or a data: URI if you need an image to appear.
  • External resources. Fonts, stylesheets and images loaded from other sites depend on those sites allowing it; some send headers that block loading inside a frame.
  • No scripting. If your markup only comes to life with JavaScript, the preview shows its pre-script state. That is expected, not a bug.

Frequently Asked Questions

Yes. The preview runs in a fully sandboxed iframe with no allowances, so scripts cannot execute and the markup cannot reach the page around it. Even hostile HTML can only draw itself inside the frame.

No. The sandbox blocks script execution entirely, so <script> tags and inline event handlers are ignored. You see the static markup, which is exactly what makes the preview safe.

A relative path has nothing to resolve against, and some hosts send headers that stop their images loading inside a frame. Use an absolute https:// URL, or embed the image as a data: URI.

Yes. Paste the whole document (doctype, <head>, <body> and all) and it renders as written. A loose fragment works too; the browser fills in the rest.

This tool renders HTML you paste as text; it never fetches a URL. You control exactly what is rendered, which is handy for email templates, scraped fragments and quick debugging.

Related Tools

Tool available in other languages