Орла
Области
Компаний
Пользователи
Галерея
Фиксированные новости
Орла
Отзывы о фирмах
Тарифы
Пользователи
Области
Банкоматы
Торговые точки
Доска объявлений
Курсы валют
Скидки
организации Орла
организации области
товары
сайты
сайты Орел
Данные
Разделы
Поиск
Поиск запросы
Статистика
Показы каталога организаций
Статистика клиенты
Пользователи
Сайты
Управление сайтом
Анкета
Аптеки
Афиша
Афиша новая
Баннеры
Бизнес >
Викторина
Голосование
Гость на сайте
Истории
Календарь событий
Каталоги >
Конкурс красоты
Конкурс аудио
Консультации
Меню
Новое на сайте
Новости >
Организации >
Программа ТВ
Публикации
Разделы сайта
Рассылка
Рестораны
Секрет фирмы >
Сервисы >
Ссылки
Тесты
Файловый менеджер
Форум
Фотогалерея
Обратная связь
Недвижимость
Новый год
Тексты
Пользователи
Юридический рейтинг
Отзывы на товары
Бан пользователей
Жалобы
Новые тесты
Коронавирус
Файловый менеджер
Имя файла
JsHttpRequest.js
Содержимое
/** * JsHttpRequest: JavaScript "AJAX" data loader * Minimized version: see debug directory for the complete one. * * @license LGPL * @author Dmitry Koterov, http://en.dklab.ru/lib/JsHttpRequest/ * @version 5.x $Id$ */ function JsHttpRequest(){ var t=this; t.onreadystatechange=null; t.readyState=0; t.responseText=null; t.responseXML=null; t.status=200; t.statusText="OK"; t.responseJS=null; t.caching=false; t.loader=null; t.session_name="PHPSESSID"; t._ldObj=null; t._reqHeaders=[]; t._openArgs=null; t._errors={inv_form_el:"Invalid FORM element detected: name=%, tag=%",must_be_single_el:"If used, <form> must be a single HTML element in the list.",js_invalid:"JavaScript code generated by backend is invalid!\n%",url_too_long:"Cannot use so long query with GET request (URL is larger than % bytes)",unk_loader:"Unknown loader: %",no_loaders:"No loaders registered at all, please check JsHttpRequest.LOADERS array",no_loader_matched:"Cannot find a loader which may process the request. Notices are:\n%"}; t.abort=function(){ with(this){ if(_ldObj&&_ldObj.abort){ _ldObj.abort(); } _cleanup(); if(readyState==0){ return; } if(readyState==1&&!_ldObj){ readyState=0; return; } _changeReadyState(4,true); } }; t.open=function(_2,_3,_4,_5,_6){ with(this){ if(_3.match(/^((\w+)\.)?(GET|POST)\s+(.*)/i)){ this.loader=RegExp.$2?RegExp.$2:null; _2=RegExp.$3; _3=RegExp.$4; } try{ if(document.location.search.match(new RegExp("[&?]"+session_name+"=([^&?]*)"))||document.cookie.match(new RegExp("(?:;|^)\\s*"+session_name+"=([^;]*)"))){ _3+=(_3.indexOf("?")>=0?"&":"?")+session_name+"="+this.escape(RegExp.$1); } } catch(e){ } _openArgs={method:(_2||"").toUpperCase(),url:_3,asyncFlag:_4,username:_5!=null?_5:"",password:_6!=null?_6:""}; _ldObj=null; _changeReadyState(1,true); return true; } }; t.send=function(_7){ if(!this.readyState){ return; } this._changeReadyState(1,true); this._ldObj=null; var _8=[]; var _9=[]; if(!this._hash2query(_7,null,_8,_9)){ return; } var _a=null; if(this.caching&&!_9.length){ _a=this._openArgs.username+":"+this._openArgs.password+"@"+this._openArgs.url+"|"+_8+"#"+this._openArgs.method; var _b=JsHttpRequest.CACHE[_a]; if(_b){ this._dataReady(_b[0],_b[1]); return false; } } var _c=(this.loader||"").toLowerCase(); if(_c&&!JsHttpRequest.LOADERS[_c]){ return this._error("unk_loader",_c); } var _d=[]; var _e=JsHttpRequest.LOADERS; for(var _f in _e){ var ldr=_e[_f].loader; if(!ldr){ continue; } if(_c&&_f!=_c){ continue; } var _11=new ldr(this); JsHttpRequest.extend(_11,this._openArgs); JsHttpRequest.extend(_11,{queryText:_8.join("&"),queryElem:_9,id:(new Date().getTime())+""+JsHttpRequest.COUNT++,hash:_a,span:null}); var _12=_11.load(); if(!_12){ this._ldObj=_11; JsHttpRequest.PENDING[_11.id]=this; return true; } if(!_c){ _d[_d.length]="- "+_f.toUpperCase()+": "+this._l(_12); }else{ return this._error(_12); } } return _f?this._error("no_loader_matched",_d.join("\n")):this._error("no_loaders"); }; t.getAllResponseHeaders=function(){ with(this){ return _ldObj&&_ldObj.getAllResponseHeaders?_ldObj.getAllResponseHeaders():[]; } }; t.getResponseHeader=function(_13){ with(this){ return _ldObj&&_ldObj.getResponseHeader?_ldObj.getResponseHeader(_13):null; } }; t.setRequestHeader=function(_14,_15){ with(this){ _reqHeaders[_reqHeaders.length]=[_14,_15]; } }; t._dataReady=function(_16,js){ with(this){ if(caching&&_ldObj){ JsHttpRequest.CACHE[_ldObj.hash]=[_16,js]; } responseText=responseXML=_16; responseJS=js; if(js!==null){ status=200; statusText="OK"; }else{ status=500; statusText="Internal Server Error"; } _changeReadyState(2); _changeReadyState(3); _changeReadyState(4); _cleanup(); } }; t._l=function(_18){ var i=0,p=0,msg=this._errors[_18[0]]; while((p=msg.indexOf("%",p))>=0){ var a=_18[++i]+""; msg=msg.substring(0,p)+a+msg.substring(p+1,msg.length); p+=1+a.length; } return msg; }; t._error=function(msg){ msg=this._l(typeof (msg)=="string"?arguments:msg); msg="JsHttpRequest: "+msg; if(!window.Error){ throw msg; }else{ if((new Error(1,"test")).description=="test"){ throw new Error(1,msg); }else{ throw new Error(msg); } } }; t._hash2query=function(_1e,_1f,_20,_21){ if(_1f==null){ _1f=""; } if((""+typeof (_1e)).toLowerCase()=="object"){ var _22=false; if(_1e&&_1e.parentNode&&_1e.parentNode.appendChild&&_1e.tagName&&_1e.tagName.toUpperCase()=="FORM"){ _1e={form:_1e}; } for(var k in _1e){ var v=_1e[k]; if(v instanceof Function){ continue; } var _25=_1f?_1f+"["+this.escape(k)+"]":this.escape(k); var _26=v&&v.parentNode&&v.parentNode.appendChild&&v.tagName; if(_26){ var tn=v.tagName.toUpperCase(); if(tn=="FORM"){ _22=true; }else{ if(tn=="INPUT"||tn=="TEXTAREA"||tn=="SELECT"){ }else{ return this._error("inv_form_el",(v.name||""),v.tagName); } } _21[_21.length]={name:_25,e:v}; }else{ if(v instanceof Object){ this._hash2query(v,_25,_20,_21); }else{ if(v===null){ continue; } if(v===true){ v=1; } if(v===false){ v=""; } _20[_20.length]=_25+"="+this.escape(""+v); } } if(_22&&_21.length>1){ return this._error("must_be_single_el"); } } }else{ _20[_20.length]=_1e; } return true; }; t._cleanup=function(){ var _28=this._ldObj; if(!_28){ return; } JsHttpRequest.PENDING[_28.id]=false; var _29=_28.span; if(!_29){ return; } _28.span=null; var _2a=function(){ _29.parentNode.removeChild(_29); }; JsHttpRequest.setTimeout(_2a,50); }; t._changeReadyState=function(s,_2c){ with(this){ if(_2c){ status=statusText=responseJS=null; responseText=""; } readyState=s; if(onreadystatechange){ onreadystatechange(); } } }; t.escape=function(s){ return escape(s).replace(new RegExp("\\+","g"),"%2B"); }; } JsHttpRequest.COUNT=0; JsHttpRequest.MAX_URL_LEN=2000; JsHttpRequest.CACHE={}; JsHttpRequest.PENDING={}; JsHttpRequest.LOADERS={}; JsHttpRequest._dummy=function(){ }; JsHttpRequest.TIMEOUTS={s:window.setTimeout,c:window.clearTimeout}; JsHttpRequest.setTimeout=function(_2e,dt){ window.JsHttpRequest_tmp=JsHttpRequest.TIMEOUTS.s; if(typeof (_2e)=="string"){ id=window.JsHttpRequest_tmp(_2e,dt); }else{ var id=null; var _31=function(){ _2e(); delete JsHttpRequest.TIMEOUTS[id]; }; id=window.JsHttpRequest_tmp(_31,dt); JsHttpRequest.TIMEOUTS[id]=_31; } window.JsHttpRequest_tmp=null; return id; }; JsHttpRequest.clearTimeout=function(id){ window.JsHttpRequest_tmp=JsHttpRequest.TIMEOUTS.c; delete JsHttpRequest.TIMEOUTS[id]; var r=window.JsHttpRequest_tmp(id); window.JsHttpRequest_tmp=null; return r; }; JsHttpRequest.query=function(url,_35,_36,_37){ var req=new this(); req.caching=!_37; req.onreadystatechange=function(){ if(req.readyState==4){ _36(req.responseJS,req.responseText); } }; req.open(null,url,true); req.send(_35); }; JsHttpRequest.dataReady=function(d){ var th=this.PENDING[d.id]; delete this.PENDING[d.id]; if(th){ th._dataReady(d.text,d.js); }else{ if(th!==false){ throw "dataReady(): unknown pending id: "+d.id; } } }; JsHttpRequest.extend=function(_3b,src){ for(var k in src){ _3b[k]=src[k]; } }; JsHttpRequest.LOADERS.xml={loader:function(req){ JsHttpRequest.extend(req._errors,{xml_no:"Cannot use XMLHttpRequest or ActiveX loader: not supported",xml_no_diffdom:"Cannot use XMLHttpRequest to load data from different domain %",xml_no_headers:"Cannot use XMLHttpRequest loader or ActiveX loader, POST method: headers setting is not supported, needed to work with encodings correctly",xml_no_form_upl:"Cannot use XMLHttpRequest loader: direct form elements using and uploading are not implemented"}); this.load=function(){ if(this.queryElem.length){ return ["xml_no_form_upl"]; } if(this.url.match(new RegExp("^([a-z]+://[^\\/]+)(.*)","i"))){ if(RegExp.$1.toLowerCase()!=document.location.protocol+"//"+document.location.hostname.toLowerCase()){ return ["xml_no_diffdom",RegExp.$1]; } } var xr=null; if(window.XMLHttpRequest){ try{ xr=new XMLHttpRequest(); } catch(e){ } }else{ if(window.ActiveXObject){ try{ xr=new ActiveXObject("Microsoft.XMLHTTP"); } catch(e){ } if(!xr){ try{ xr=new ActiveXObject("Msxml2.XMLHTTP"); } catch(e){ } } } } if(!xr){ return ["xml_no"]; } var _40=window.ActiveXObject||xr.setRequestHeader; if(!this.method){ this.method=_40&&this.queryText.length?"POST":"GET"; } if(this.method=="GET"){ if(this.queryText){ this.url+=(this.url.indexOf("?")>=0?"&":"?")+this.queryText; } this.queryText=""; if(this.url.length>JsHttpRequest.MAX_URL_LEN){ return ["url_too_long",JsHttpRequest.MAX_URL_LEN]; } }else{ if(this.method=="POST"&&!_40){ return ["xml_no_headers"]; } } this.url+=(this.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+(req.caching?"0":this.id)+"-xml"; var id=this.id; xr.onreadystatechange=function(){ if(xr.readyState!=4){ return; } xr.onreadystatechange=JsHttpRequest._dummy; req.status=null; try{ req.status=xr.status; req.responseText=xr.responseText; } catch(e){ } if(!req.status){ return; } try{ var _42=req.responseText||"{ js: null, text: null }"; eval("JsHttpRequest._tmp = function(id) { var d = "+_42+"; d.id = id; JsHttpRequest.dataReady(d); }"); } catch(e){ return req._error("js_invalid",req.responseText); } JsHttpRequest._tmp(id); JsHttpRequest._tmp=null; }; xr.open(this.method,this.url,true,this.username,this.password); if(_40){ for(var i=0;i<req._reqHeaders.length;i++){ xr.setRequestHeader(req._reqHeaders[i][0],req._reqHeaders[i][1]); } xr.setRequestHeader("Content-Type","application/octet-stream"); } xr.send(this.queryText); this.span=null; this.xr=xr; return null; }; this.getAllResponseHeaders=function(){ return this.xr.getAllResponseHeaders(); }; this.getResponseHeader=function(_44){ return this.xr.getResponseHeader(_44); }; this.abort=function(){ this.xr.abort(); this.xr=null; }; }}; JsHttpRequest.LOADERS.script={loader:function(req){ JsHttpRequest.extend(req._errors,{script_only_get:"Cannot use SCRIPT loader: it supports only GET method",script_no_form:"Cannot use SCRIPT loader: direct form elements using and uploading are not implemented"}); this.load=function(){ if(this.queryText){ this.url+=(this.url.indexOf("?")>=0?"&":"?")+this.queryText; } this.url+=(this.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+this.id+"-"+"script"; this.queryText=""; if(!this.method){ this.method="GET"; } if(this.method!=="GET"){ return ["script_only_get"]; } if(this.queryElem.length){ return ["script_no_form"]; } if(this.url.length>JsHttpRequest.MAX_URL_LEN){ return ["url_too_long",JsHttpRequest.MAX_URL_LEN]; } var th=this,d=document,s=null,b=d.body; if(!window.opera){ this.span=s=d.createElement("SCRIPT"); var _4a=function(){ s.language="JavaScript"; if(s.setAttribute){ s.setAttribute("src",th.url); }else{ s.src=th.url; } b.insertBefore(s,b.lastChild); }; }else{ this.span=s=d.createElement("SPAN"); s.style.display="none"; b.insertBefore(s,b.lastChild); s.innerHTML="Workaround for IE.<s"+"cript></"+"script>"; var _4a=function(){ s=s.getElementsByTagName("SCRIPT")[0]; s.language="JavaScript"; if(s.setAttribute){ s.setAttribute("src",th.url); }else{ s.src=th.url; } }; } JsHttpRequest.setTimeout(_4a,10); return null; }; }}; JsHttpRequest.LOADERS.form={loader:function(req){ JsHttpRequest.extend(req._errors,{form_el_not_belong:"Element \"%\" does not belong to any form!",form_el_belong_diff:"Element \"%\" belongs to a different form. All elements must belong to the same form!",form_el_inv_enctype:"Attribute \"enctype\" of the form must be \"%\" (for IE), \"%\" given."}); this.load=function(){ var th=this; if(!th.method){ th.method="POST"; } th.url+=(th.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+th.id+"-"+"form"; if(th.method=="GET"){ if(th.queryText){ th.url+=(th.url.indexOf("?")>=0?"&":"?")+th.queryText; } if(th.url.length>JsHttpRequest.MAX_URL_LEN){ return ["url_too_long",JsHttpRequest.MAX_URL_LEN]; } var p=th.url.split("?",2); th.url=p[0]; th.queryText=p[1]||""; } var _4e=null; var _4f=false; if(th.queryElem.length){ if(th.queryElem[0].e.tagName.toUpperCase()=="FORM"){ _4e=th.queryElem[0].e; _4f=true; th.queryElem=[]; }else{ _4e=th.queryElem[0].e.form; for(var i=0;i<th.queryElem.length;i++){ var e=th.queryElem[i].e; if(!e.form){ return ["form_el_not_belong",e.name]; } if(e.form!=_4e){ return ["form_el_belong_diff",e.name]; } } } if(th.method=="POST"){ var _52="multipart/form-data"; var _53=(_4e.attributes.encType&&_4e.attributes.encType.nodeValue)||(_4e.attributes.enctype&&_4e.attributes.enctype.value)||_4e.enctype; if(_53!=_52){ return ["form_el_inv_enctype",_52,_53]; } } } var d=_4e&&(_4e.ownerDocument||_4e.document)||document; var _55="jshr_i_"+th.id; var s=th.span=d.createElement("DIV"); s.style.position="absolute"; s.style.display="none"; s.style.visibility="hidden"; s.innerHTML=(_4e?"":"<form"+(th.method=="POST"?" enctype=\"multipart/form-data\" method=\"post\"":"")+"></form>")+"<iframe name=\""+_55+"\" id=\""+_55+"\" style=\"width:0px; height:0px; overflow:hidden; border:none\"></iframe>"; if(!_4e){ _4e=th.span.firstChild; } d.body.insertBefore(s,d.body.lastChild); var _57=function(e,_59){ var sv=[]; var _5b=e; if(e.mergeAttributes){ var _5b=d.createElement("form"); _5b.mergeAttributes(e,false); } for(var i=0;i<_59.length;i++){ var k=_59[i][0],v=_59[i][1]; sv[sv.length]=[k,_5b.getAttribute(k)]; _5b.setAttribute(k,v); } if(e.mergeAttributes){ e.mergeAttributes(_5b,false); } return sv; }; var _5f=function(){ top.JsHttpRequestGlobal=JsHttpRequest; var _60=[]; if(!_4f){ for(var i=0,n=_4e.elements.length;i<n;i++){ _60[i]=_4e.elements[i].name; _4e.elements[i].name=""; } } var qt=th.queryText.split("&"); for(var i=qt.length-1;i>=0;i--){ var _64=qt[i].split("=",2); var e=d.createElement("INPUT"); e.type="hidden"; e.name=unescape(_64[0]); e.value=_64[1]!=null?unescape(_64[1]):""; _4e.appendChild(e); } for(var i=0;i<th.queryElem.length;i++){ th.queryElem[i].e.name=th.queryElem[i].name; } var sv=_57(_4e,[["action",th.url],["method",th.method],["onsubmit",null],["target",_55]]); _4e.submit(); _57(_4e,sv); for(var i=0;i<qt.length;i++){ _4e.lastChild.parentNode.removeChild(_4e.lastChild); } if(!_4f){ for(var i=0,n=_4e.elements.length;i<n;i++){ _4e.elements[i].name=_60[i]; } } }; JsHttpRequest.setTimeout(_5f,100); return null; }; }};
/library/js/
Имя
Дата
Размер
..
2010-05-05
ckeditor
2011-11-28
jquery
2014-06-24
markitup
2012-10-31
swfupload
2011-03-09
tinymce
2012-06-24
AC_RunActiveContent.js
2007-03-06
8 кб.
JsHttpRequest.js
2009-12-16
14 кб.
String.min.js
2011-01-14
6 кб.
dklab_realplexor.js
2013-04-17
5 кб.
flowplayer.min.js
2011-03-04
16 кб.
jquery.fancybox.js
2010-11-11
29 кб.
jquery.scrollable-1.0.2.min.js
2011-11-15
6 кб.
jquery.tools.min.js
2011-11-02
8 кб.
json2.js
2010-05-25
17 кб.
knockout-2.1.0.js
2012-05-22
40 кб.
swfobject.js
2012-09-07
10 кб.
/library/js
Загрузить файлы
Файл 1
Файл 2
Файл 3