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');