JSFiddle - React, Tailwind, and code Playground

by davestein

HTML

<html>
<body>
    
        
</body>
</html>

JavaScript

var iframe         = document.createElement('iframe');
var html ='<!DOCTYPE  HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  "http://www.w3.org/TR/html4/strict.dtd"> <html><head><title>Rich Text  Area.</title><meta http-equiv="Content-Type"  content="text/html; charset=UTF-8" /><base  href="http://net1.be.lan/portfolio/project_editor/"><style>html  { height: 95%; } body { padding: 7px; background-color: #fff; font:  13px/1.22  arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small; } a,  a:visited, a:hover { color: blue !important; text-decoration: underline  !important; cursor: text !important; } .warning-localfile {  border-bottom: 1px dashed red !important; } .yui-busy { cursor: wait  !important; } img.selected { border: 2px dotted #808080; } img { cursor:  pointer !important; border: none; } body.ptags.webkit div.yui-wk-p {  margin: 11px 0; } body.ptags.webkit div.yui-wk-div { margin: 0;  }</style><style>.yui-hidden font, .yui-hidden strong,  .yui-hidden b, .yui-hidden em, .yui-hidden i, .yui-hidden u, .yui-hidden  div,.yui-hidden p,.yui-hidden span,.yui-hidden img, .yui-hidden ul,  .yui-hidden ol, .yui-hidden li, .yui-hidden table { border: 1px dotted  #ccc; } .yui-hidden .yui-non { border: none; } .yui-hidden img {  padding: 2px; }</style><style>/* No Extra CSS  */</style></head><body onload="document.body._rteLoaded =  true;"><br></body></html>';

iframe.setAttribute('src', 'javascript:;');

iframe.setAttribute('contentEditable','true');    
    document.body.appendChild( iframe );


var iframe_window  = iframe.contentWindow,
    iframe_doc     = iframe_window.document;
    

iframe_doc.onload = function() {
  alert('loaded');  
};
iframe.src = 'data:text/html;charset=utf-8,' + encodeURIComponent(html)

var iframe_head    = iframe_doc.getElementsByTagName('head')[0],
    run_script     = iframe_doc.createElement('script');
    
    run_script.innerHTML = 'alert( window.location.href );';
    
    iframe_head.appendChild(run_script);