JSFiddle - React, Tailwind, and code Playground

HTML

<iframe src="http://fiddle.jshell.net/fF9Hp/6/show/"></iframe>

CSS

html, body {
    background: #d0e5ff;
}

JavaScript

if (window.addEventListener) window.addEventListener("message", handleIframelyMessage, false);
else window.attachEvent("onmessage", function (e) { return handleIframelyMessage.call(this,e||window.event); });

function handleIframelyMessage (event) {
    var m;
    if (typeof event.data !== "string" || !(m = /^iframely:style:(.*)/.exec(event.data))) {
        return;
    }
    
    // important: filter style so no shenanigans can happen
    var params = m[1].split("&");
    var style = {};
    var strstyle = [];
    var allowed = {width:true, height:true, border:true, background:true, overflow:true};
    for (var i = 0; i < params.length; ++ i) {
        var param = params[i].split("=");
        var key = decodeURIComponent(param[0]);
        if (allowed[key] === true) {
            var value = decodeURIComponent(param.slice(1).join("="));
            style[key] = value;
            strstyle.push(key+":"+value+";");
        }
    }
    strstyle = strstyle.join("");
    
    var elems = document.getElementsByTagName("iframe");
    for (var i = 0; i < elems.length; ++ i) {
        var elem = elems[i];
        if (elem.contentWindow === event.source) {
            var border = (style.border||'').replace(/^\s+/,'').split(/\s+/);
            if (border[0] === "0" || border[1] === 'none') {
                elem.setAttribute("frameBorder", "0");
            }
            if (style.overflow === "hiddden") {
                elem.setAttribute("scrolling","no");
            }
            else if (style.overflow === "scroll") {
                elem.setAttribute("scrolling","yes");
            }
            else if (style.overflow === "auto") {
                elem.setAttribute("scrolling","auto");
            }
            elem.style.cssText = elem.style.cssText ? elem.style.cssText+";"+strstyle : strstyle;
            break;
        }
    }
}