cross domain image data ajax

clone of JQuery's getJSON function

by Darby Rathbone

JavaScript

var $ = {
    getJSON: function (url, params, callbackFuncName, callback) {
        var paramsUrl = "",
            jsonp = this.getQueryString(url)[callbackFuncName];
        for (var key in params) {
            paramsUrl += "&" + key + "=" + encodeURIComponent(params[key]);
        }
        url += paramsUrl;
        window[jsonp] = function (data) {
            window[jsonp] = undefined;
            try {
                delete window[jsonp];
            } catch (e) {}

            if (head) {
                head.removeChild(script);
            }
            callback(JSON.parse(data));
        };

        var head = document.getElementsByTagName('head')[0];
        var script = document.createElement('script');
        script.charset = "UTF-8";
        script.src = url;
        head.appendChild(script);
        return true;
    },
    getQueryString: function (url) {
        if (url) {
            url = url.split("?")[1];
        }
        var result = {}, queryString = url || location.search.substring(1),
            re = /([^&=]+)=([^&]*)/g,
            m;
        while (m = re.exec(queryString)) {
            result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
        }
        return result;
    }
};
window.callback = function callback(data) {

    img1.src = data.data;



    canvas.width = img1.width;
    canvas.height = img1.height;
    document.body.appendChild(canvas);

    ctx.drawImage(img1, 0, 0);

};
var img1 = new Image();
var url = "http://image2datauri.jit.su/?cb=callback";
var params = {
    url: "http://cuteoverload.files.wordpress.com/2013/12/11126301093_551dd38c8d_b.jpg"
};
$.getJSON(url, params, "callback", callback);

var img2 = new Image();
var canvas = document.createElement('canvas'),
    ctx = canvas.getContext('2d');