Skip to content

Instantly share code, notes, and snippets.

@k-kinzal
Created August 14, 2012 11:01
Show Gist options
  • Save k-kinzal/3348171 to your computer and use it in GitHub Desktop.
Save k-kinzal/3348171 to your computer and use it in GitHub Desktop.
My snippets
/**
* file download in current page.
* @param {String} selector CSS selector
* @param {HTMLElement} [target] element which does not belong document root
* @example download('img')
*/
function download(selector, target) {
target = target instanceof HTMLElement ? target : document;
var elements = target.querySelectorAll(selector);
for (var i = 0, anchor, evt; i < elements.length; i++) {
evt = document.createEvent('MouseEvents');
evt.initMouseEvent('click', false, false, window, 0, 0, 0, 0, 0, false, true, false, false, 0, null);
anchor = document.createElement('a');
anchor.href = elements[i].href || elements[i].src;
anchor.dispatchEvent(evt);
}
}
(function() {
// ifdef request
if (typeof window.request !== 'undefined') {
throw new Error('defined request.');
}
// define request
window.request = Request;
// class
function Request() {
}
Request.get = function(url, object) {
// send request
var request = new XMLHttpRequest();
request.open("GET", url+'?'+createParameter(object).substr(1), false);
request.send();
return request.responseText;
};
Request.post = function(url, object, callback) {
var request = new XMLHttpRequest();
request.open("POST", url, false);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.send( createParameter(object).substr(1) );
return request.responseText;
};
// private function
function createParameter(object) {
var param = '';
for (key in object) {
if (!object.hasOwnProperty(key) || typeof object[key] === 'function') continue;
param += '&'+key+'='+encodeURIComponent(object[key]||'');
}
return param;
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment