Skip to content

Instantly share code, notes, and snippets.

@feifanzhou
Last active August 29, 2015 14:06
Show Gist options
  • Save feifanzhou/7966a501703c1b637e95 to your computer and use it in GitHub Desktop.
Save feifanzhou/7966a501703c1b637e95 to your computer and use it in GitHub Desktop.
AJAX Upload Image
var uploadImage = function(form, responseHandler, setup, teardown) {
var eventHandler, iframe, _this;
iframe = document.createElement('iframe');
iframe.setAttribute('name', 'uploadTarget');
iframe.setAttribute('style', 'display: none');
document.body.appendChild(iframe);
_this = this;
eventHandler = function() {
var content;
if (iframe.detachEvent) {
iframe.detachEvent('onload', eventHandler);
} else {
iframe.removeEventListener('load', eventHandler, false);
}
content = '';
if (iframe.contentDocument) {
content = iframe.contentDocument.body.innerHTML;
} else if (iframe.contentWindow) {
content = iframe.contentWindow.body.innerHTML;
} else if (iframe.document) {
content = iframe.document.body.innerHTML;
}
if (content.charAt(0) == '{' || content.charAt(0) == '[')
content = JSON.parse(content)
if(teardown)
teardown();
responseHandler(content);
return setTimeout((function() {
return iframe.parentNode.removeChild(iframe);
}), 250);
};
if (iframe.addEventListener) {
iframe.addEventListener('load', eventHandler, true);
} else if (iframe.attachEvent) {
iframe.attachEvent('onload', eventHandler);
}
form.setAttribute('target', 'uploadTarget');
if(setup)
setup();
return form.submit();
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment