JSFiddle - React, Tailwind, and code Playground

by swoogie

JavaScript

//This function overrides Image object and document.createElement
//to store Objects as they are created in a global array. 
var tester = {
    start: function () {
        window.oce= document.createElement;
        window.oim = Image;
        window.globs = [];
        Image = function (imgObj) {
            return function () {
                var newImage = new imgObj;
                globs.push(newImage);
                return newImage;
            }
        }(Image)
        document.createElement = _.wrap(document.createElement, function (func, param) {
            var e = func.call(document, param);
            globs.push(e);
            return e;
        });
    },
    end: function () {
        document.createElement = oce;
        Image = oim;
        oim=oce=undefined;
    }

};
//show it isnt in place
var x = new Image();
x.src = "https://cdn.sstatic.net/stackoverflow/img/sprites.png?v=6";
var b = document.createElement('script');
b.src = 'www.google.com';
try {
    console.dir(globs);
} catch (e) {
    console.log(e);
}

//invoke overrides
tester.start();

//remake elements
var x = new Image();
x.src = "http://jsfiddle.net/img/logo.png";
var b = document.createElement('script');
b.src = 'www.amazon.com';
console.dir(globs);

//turn off overrides 
tester.end();
var v = document.createElement('iframe');
v.src = 'www.theverge.com';
var r = new Image();
r.src = 'http://underscorejs.org/docs/images/underscore.png';
console.dir(globs);