pastebin

Paste Search Dynamic
Recent pastes
/pw_ajax.js
  1. function AjaxObj() {
  2.         this.responseText = null;
  3.         var s = document.createElement('div');
  4.         s.style.display = 'none';
  5.         s.innerHTML = '<iframe id="ajaxiframe" name="ajaxiframe" width="0" height="0" src=""></iframe>';
  6.         document.body.appendChild(s);
  7.         this.iframe = s.firstChild;
  8.  
  9.         this.post = function(url,data) {
  10.                 if (typeof data == 'string' && data != '') {
  11.                         var f = document.createElement('form');
  12.                         f.name   = 'ajaxform';
  13.                         f.target = 'ajaxiframe';
  14.                         f.method = 'post';
  15.                         f.action = url;
  16.                         var ds = data.split("&");
  17.                         for (var i = 0; i < ds.length; i++) {
  18.                                 if (ds[i]) {
  19.                                         var v    = ds[i];
  20.                                         var el   = document.createElement('input');
  21.                                         el.type  = 'hidden';
  22.                                         el.name  = v.substr(0,v.indexOf('='));
  23.                                         el.value = v.substr(v.indexOf('=')+1);
  24.                                         f.appendChild(el);
  25.                                 }
  26.                         }
  27.                         document.body.appendChild(f);
  28.                         f.submit();
  29.                         document.body.removeChild(f);
  30.                 } else if (typeof data == 'object') {
  31.                         data.target = 'ajaxiframe';
  32.                         data.submit();
  33.                 } else {
  34.                         self.ajaxiframe.location = url;
  35.                 }
  36.         }
  37. }
  38. function XMLhttp() {
  39.         this.request = null;
  40.         this.recall      = null;
  41.         this.time    = null;
  42.         this.t       = null;
  43.         this.last        = 0;
  44. }
  45.  
  46. XMLhttp.prototype = {
  47.  
  48.         send : function(url,data,callback) {
  49.                 if (this.request == null) {
  50.                         this.request = new AjaxObj();
  51.                 }
  52.                 this.request.responseText = '';
  53.  
  54.                 var nowtime     = new Date().getTime();
  55.                 if (nowtime - this.last < 1500) {
  56.                         clearTimeout(this.t);
  57.                         this.t = setTimeout(function(){ajax.send(url,data,callback)},1500+this.last-nowtime);
  58.                         return;
  59.                 }
  60.                 this.last = nowtime;
  61.                 url     += (url.indexOf("?") >= 0) ? "&nowtime=" + nowtime : "?nowtime=" + nowtime;
  62.                 if (typeof verifyhash != 'undefined') {
  63.                         url += '&verify=' + verifyhash;
  64.                 }
  65.                 this.request.post(url,data);
  66.                 this.recall = callback;
  67.                 if (typeof this.recall == "function") {
  68.                         if (this.request.iframe.attachEvent) {
  69.                                 this.request.iframe.detachEvent('onload',ajax.load);
  70.                                 this.request.iframe.attachEvent('onload',ajax.load);
  71.                         } else {
  72.                                 this.request.iframe.addEventListener('load',ajax.load,true);
  73.                         }
  74.                 }
  75.         },
  76.  
  77.         load : function() {
  78.                 if (is_ie) {
  79.                         ajax.request.responseText = (typeof ajax.request.iframe.contentWindow.document.XMLDocument != 'undefined') ? ajax.request.iframe.contentWindow.document.XMLDocument.text : null;
  80.                         ajax.request.iframe.detachEvent('onload',ajax.load);
  81.                 } else {
  82.                         ajax.request.responseText = ajax.request.iframe.contentWindow.document.documentElement.firstChild.nodeValue;
  83.                         ajax.request.iframe.removeEventListener('load',ajax.load,true);
  84.                 }
  85.                 ajax.recall();
  86.         },
  87.  
  88.         XmlDocument : function(obj) {
  89.                 return is_ie ? ajax.request.iframe.contentWindow.document.XMLDocument : ajax.request.iframe.contentWindow.document;
  90.         },
  91.  
  92.         submit : function(obj,recall) {
  93.                 if (typeof recall == 'undefined' || typeof recall != 'function') {
  94.                         recall = ajax.guide;
  95.                 }
  96.                 ajax.send(obj.action,obj,recall);
  97.                 closep();
  98.         },
  99.  
  100.         get : function() {
  101.                 if (ajax.request.responseText != null && ajax.request.responseText.indexOf('<') != -1) {
  102.                         read.setMenu(this.runscript(ajax.request.responseText));
  103.                         read.menupz(read.obj);
  104.                 } else {
  105.                         closep();
  106.                         ajax.guide();
  107.                 }
  108.         },
  109.  
  110.         runscript : function (html) {
  111.                 if (html.indexOf('<script') == -1) return html;
  112.                 html = html.replace(/<script(.*?)>([^\x00]*?)<\/script>/ig, function($1, $2, $3) {
  113.                         var id = path = code = '';
  114.                         if ($2.match(/\s*id\="([\w\_]+?)"/ig)) {
  115.                                 id = RegExp.$1;
  116.                         }
  117.                         if ($2.match(/\s*src\="(.+?)"/ig)) {
  118.                                 path = RegExp.$1;
  119.                         } else {
  120.                                 code = $3;
  121.                         }
  122.                         loadjs(path,code,id);
  123.                         return '';
  124.                 });
  125.                 return html;
  126.         },
  127.  
  128.         guide : function() {
  129.                 if (ajax.request.responseText == null) {
  130.                         ajax.request.responseText = 'ę‚ØčÆ·ę±‚ēš„é�µé¯¢å‡ŗ错啦!';
  131.                 }
  132.                 var rText = ajax.request.responseText.split('\t');
  133.                 if (rText[1] != 'nextto') {
  134.                         showDialog('',rText[0],2);
  135.                 }
  136.                 if (typeof(rText[1]) != 'undefined' && in_array(rText[1],['jump','nextto','reload'])) {
  137.                         if (rText[1] == 'jump') {
  138.                                 setTimeout("window.location.href='"+rText[2]+"';",200);
  139.                         } else if (rText[1] == 'nextto') {
  140.                                 sendmsg(rText[2],rText[3],rText[4]);
  141.                         } else if (rText[1] == 'reload') {
  142.                                 setTimeout("window.location.reload();",200);
  143.                         }
  144.                 }
  145.         },
  146.  
  147.         clear : function() {
  148.                 if (IsElement('ajax_guide')) document.body.removeChild(getObj('ajax_guide'));
  149.         },
  150.  
  151.         convert : function(str) {
  152.                 if (typeof(str)=='string') {
  153.                         return str.replace(/\&/g,'%26');
  154.                 }
  155.                 return str;
  156.         },
  157.  
  158.         quickpost : function(event,obj) {
  159.                 if ((event.ctrlKey && event.keyCode == 13) || (event.altKey && event.keyCode == 83)) {
  160.                         try{obj.ajaxsubmit.click();}catch(e){}
  161.                 }
  162.         }
  163. }
  164.  
  165. var ajax = new XMLhttp();
  166.  
  167. function sendmsg(url,data,id) {
  168.         read.obj = (typeof id == 'undefined' || !id) ? null : getObj(id);
  169.         read.guide();
  170.         setTimeout(function(){ajax.send(url,data,ajax.get);},300);
  171. }
  172. function getObj(id) {
  173.         return document.getElementById(id);
  174. }
  175. function objCheck(obj) {
  176.         if (typeof(obj)=='string') {
  177.                 obj     = getObj(obj);
  178.         }
  179.         return obj;
  180. }
  181. function ietruebody() {
  182.         if (getObj('upPanel')) {
  183.                 return getObj('upPanel');
  184.         }
  185.         return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
  186. }
  187. function getTop() {
  188.         return typeof window.pageYOffset != 'undefined' ? window.pageYOffset:ietruebody().scrollTop;
  189. }
  190. function getLeft() {
  191.         return (typeof window.pageXOffset != 'undefined' ? window.pageXOffset:ietruebody().scrollLeft)
  192. }
  193. function IsElement(id) {
  194.         return document.getElementById(id) != null ? true : false;
  195. }
  196. function setCurrent(src,dst,css) {
  197.         var o = null;
  198.         if (IsElement(src)) {
  199.                 o = getObj(src);
  200.         } else if (dst && IsElement(dst)) {
  201.                 o = getObj(dst);
  202.         }
  203.         if (o) o.className += ' ' + css;
  204. }
  205.  
  206. function strlen(str){
  207.         var len = 0;
  208.         var s_len = str.length = (is_ie && str.indexOf('\n')!=-1) ? str.replace(/\r?\n/g, '_').length : str.length;
  209.         var c_len = charset == 'utf-8' ? 3 : 2;
  210.         for(var i=0;i<s_len;i++){
  211.                 len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? c_len : 1;
  212.         }
  213.         return len;
  214. }
  215.  
  216. function initCheckTextNum(textareaid,warnid,num) {
  217.         var textareaobj = document.getElementById(textareaid);
  218.         if (document.addEventListener) {
  219.                 textareaobj.addEventListener("input",function(){checkTextNum(textareaobj,warnid,num);},false);
  220.         } else if (document.attachEvent){
  221.                 textareaobj.attachEvent("onpropertychange",function(){checkTextNum(textareaobj,warnid,num);});
  222.         }
  223. }
  224.  
  225. function checkTextNum(textareaid,warnid,num) {
  226.         if (typeof(textareaid) == 'string') {
  227.                 var textareaobj = document.getElementById(textareaid);
  228.         } else {
  229.                 var textareaobj = textareaid;
  230.         }
  231.         var str_length = strlen(textareaobj.value);
  232.         var warn = document.getElementById(warnid);
  233.         if (str_length > num) {
  234.                 warn.style.color = 'red';
  235.                 warn.innerHTML = '超å‡ŗ '+(str_length-num)+' å­—čŠ‚';
  236.         } else {
  237.                 warn.style.color = '';
  238.                 warn.innerHTML = '限 ' + num + ' å­—čŠ‚';
  239.         }
  240. }
Parsed in 0.063 seconds