function AjaxObj() { this.responseText = null; var s = document.createElement('div'); s.style.display = 'none'; var n = 'iframe' + new Date().getTime(); s.innerHTML = ''; var bd=document.body; bd.insertBefore(s,bd.firstChild); this.iframe = s.firstChild; this.post = function(url,data) { if (typeof data == 'string' && data != '') { var f = document.createElement('form'); f.name = 'ajaxform'; f.target = n; f.method = 'post'; f.action = url; var ds = data.split("&"); for (var i = 0; i < ds.length; i++) { if (ds[i]) { var v = ds[i]; var el = document.createElement('input'); el.type = 'hidden'; el.name = v.substr(0,v.indexOf('=')); el.value = v.substr(v.indexOf('=')+1); f.appendChild(el); } } document.body.insertBefore(f,document.body.childNodes[0]); f.submit(); document.body.removeChild(f); } else if (typeof data == 'object') { var s = data.getAttribute('action'); if (typeof s == 'object') { var p = s.parentNode; p.removeChild(s); data.setAttribute('action', url); p.appendChild(s); } else { data.setAttribute('action', url); } data.target = n; data.submit(); } else { self.frames&&self.frames[n].location.replace(url);//让iframe没有浏览历史 //this.iframe.src=url; } } this.clearhistroy = function() { self.frames&&self.frames[n].location.replace('about:blank'); } } function XMLhttp() { this.request = null; this.recall = null; this.time = null; this.t = null; this.sArray = new Array(); this.last = 0; } XMLhttp.prototype = { send : function(url,data,callback) { if (this.request == null) { this.request = new AjaxObj(); } this.request.responseText = ''; var nowtime = new Date().getTime(); if (nowtime - this.last < 1500) { clearTimeout(this.t); this.t = setTimeout(function(){ajax.send(url,data,callback)},1500+this.last-nowtime); return; } this.last = nowtime; url += (url.indexOf("?") >= 0) ? "&nowtime=" + nowtime : "?nowtime=" + nowtime; if (typeof verifyhash != 'undefined') { url += '&verify=' + verifyhash; } this.request.post(url,data); this.recall = callback; if (typeof this.recall == "function") { if (this.request.iframe.attachEvent) { this.request.iframe.detachEvent('onload',ajax.load); this.request.iframe.attachEvent('onload',ajax.load); } else { this.request.iframe.addEventListener('load',ajax.load,true); } } }, load : function() { if(!ajax.request.iframe.contentWindow){ return false; } var _innerText=ajax.request.iframe.contentWindow.document.documentElement.innerText; var _textContent=ajax.request.iframe.contentWindow.document.documentElement.textContent; if(_innerText==undefined&&_textContent==undefined){ return false; } if(-[1,]){ ajax.request.responseText=_textContent; }else{ var rules = //.exec(_innerText); if(rules && rules[1]){ ajax.request.responseText=rules[1].replace(/^\s+|\s+$/g,''); }else{ var xmlDoc=ajax.request.iframe.contentWindow.document.XMLDocument; if(xmlDoc){ ajax.request.responseText=xmlDoc.text; }else{ ajax.request.responseText=_innerText; } } } if (ajax.request.iframe.detachEvent) { ajax.request.iframe.detachEvent('onload',ajax.load); } else { ajax.request.iframe.removeEventListener('load',ajax.load,true); } //try{if (ajax.request.iframe.location.href == 'about:blank'){return '';}}catch(e){} if (typeof(ajax.recall) == 'function') { ajax.recall(); ajax.doscript(); } //fixed for tt browser (register page) if (typeof ajaxclearhistory == 'undefined')ajax.request.clearhistroy(); }, XmlDocument : function(obj) { return (!-[1,]) ? ajax.request.iframe.contentWindow.document.XMLDocument : ajax.request.iframe.contentWindow.document; }, submit : function(obj,recall) { if (typeof recall == 'undefined' || typeof recall != 'function') { recall = ajax.guide; } ajax.send(obj.getAttribute('action'), obj, recall); closep(); }, get : function(newread,border,cb,focus) { var temp = newread ? newread : read; var no_run_script = false; if (ajax.request.responseText.indexOf('NO_RUN_SCRIPT') == 0){ ajax.request.responseText = ajax.request.responseText.substring(13); no_run_script = true; } if (ajax.request.responseText != null && ajax.request.responseText.indexOf('<') != -1 && !no_run_script) { temp.setMenu(this.runscript(ajax.request.responseText), '', border); temp.menupz(temp.obj); if(cb){ cb(); } //聚焦 if(focus){ try{ var inputs=temp.menu.getElementsByTagName("input"); for(var i=0,len=inputs.length;i([^\x00]*?)<\/script>/ig, function($1, $2, $3) { _.sArray.push({'attribute' : $2, 'code' : $3}); return ''; }); return html; }, doscript : function() { for (var i = 0; i < this.sArray.length; i++) { var id = path = code = ''; if (this.sArray[i]['attribute'].match(/\s*id\="([\w\_]+?)"/i)) { id = RegExp.$1; } if (this.sArray[i]['attribute'].match(/\s*src\="(.+?)"/i)) { path = RegExp.$1; } else { code = this.sArray[i]['code']; } loadjs(path, code, id); } this.sArray = new Array(); }, showError : function(message,time){ var control = document.getElementById('pw_box'), popout = getElementsByClassName('popout',control)[0], msgBoxs = getElementsByClassName('wrongTip',popout), box = msgBoxs.length ? msgBoxs[0] : null; popBottom = getElementsByClassName('popBottom',control); if(!box) { box = document.createElement('div'); box.className = 'wrongTip'; box.innerHTML = message; popBottom[0].parentNode.insertBefore(box,popBottom[0]); } box.style.display = ''; box.innerHTML = message; if(time == undefined) time = 3; clearTimeout(this.showTime); this.showTime = setTimeout(function(){box.style.display = 'none';},time * 1000); return false; }, guide : function(callback) { if (ajax.request.responseText == null) { ajax.request.responseText = '您请求的页面出错啦!'; } var rText = ajax.request.responseText.split('\t'); /*主题印戳*/ if(operateOverPrint(rText)){ return false; } if (rText[1] != 'nextto') { showDialog('', rText[0], 2, callback ? callback : null); } if (typeof(rText[1]) != 'undefined' && in_array(rText[1],['jump','nextto','reload'])) { if (rText[1] == 'jump') { setTimeout("window.location.href='"+rText[2]+"';",200); } else if (rText[1] == 'nextto') { sendmsg(rText[2],rText[3],rText[4]); } else if (rText[1] == 'reload') { setTimeout("window.location.reload();",2000); } } }, clear : function() { if (IsElement('ajax_guide')) document.body.removeChild(getObj('ajax_guide')); }, convert : function(str) { if (typeof(str)=='string') { return str.replace(/\&/g,'%26'); } return str; }, quickpost : function(event,obj) { if ((event.ctrlKey && event.keyCode == 13) || (event.altKey && event.keyCode == 83)) { try{obj.ajaxsubmit.click();}catch(e){} } } } var ajax = new XMLhttp(); function sendmsg(url,data,id,callback) {//callback 07-05扩展,用来执行html生成之后的回调,不影响之前代码 var e=getEvent(); if(e.preventDefault){ e.preventDefault(); }else{ e.returnValue=false; } read.obj = (!!id&&typeof id === 'string') ? getObj(id) :(typeof id=="object")?id:null; read.guide(); setTimeout(function(){ajax.send(url,data,function(){ ajax.get(); callback && callback(); });},100); } function objCheck(obj) { if (typeof(obj)=='string') { obj = getObj(obj); } return obj; } function setCurrent(src,dst,css) { var o = null; if (IsElement(src)) { o = getObj(src); } else if (dst && IsElement(dst)) { o = getObj(dst); } if (o) o.className += ' ' + css; } function strlen(str){ var len = 0; var s_len = str.length = (is_ie && str.indexOf('\n')!=-1) ? str.replace(/\r?\n/g, '_').length : str.length; window.charset?0:charset=""; var c_len = charset == 'utf-8' ? 3 : 2; for(var i=0;i 255 ? c_len : 1; } return len; } function substr(str, len) { if(!str || !len) { return ''; } var a = 0; var i = 0; var temp = ''; var c_len = charset == 'utf-8' ? 3 : 2; for (i=0;i255) { a+=c_len; } else { a++; } if(a > len) { return temp; } temp += str.charAt(i); } return str; } function initCheckTextNum(textareaid,warnid,num,nodisplay) { var textareaobj = getObj(textareaid); var nodisplay = nodisplay ? false : true;/* if choose true the limit nums will not display else will display*/ try{if (document.addEventListener) { textareaobj.addEventListener("input",function(){checkTextNum(textareaobj,warnid,num,nodisplay);},false); } else if (document.attachEvent){ textareaobj.attachEvent("onpropertychange",function(){checkTextNum(textareaobj,warnid,num,nodisplay);}); }}catch(e){} } function checkTextNum(textareaid,warnid,num,nodisplay) { if (typeof(textareaid) == 'string') { var textareaobj = getObj(textareaid); } else { var textareaobj = textareaid; } var str_length = strlen(textareaobj.value); if (!objCheck(getObj(warnid))) { return false; } var warn = getObj(warnid); if (str_length > num) { warn.style.display = ''; warn.style.color = ''; warn.innerHTML = '已超出'+(str_length-num)+'字节'; } else { if(nodisplay){ warn.style.display = ''; warn.innerHTML = '剩余'+(num-str_length)+'字节'; }else if(warn.style.display == ''){ warn.style.display = 'none'; } } } function SetCookie(name,value) { expires = new Date(); expires.setTime(expires.getTime()+(86400*365*1000)); document.cookie=name+"="+escape(value)+"; expires="+expires.toGMTString()+"; path=/"; } function FetchCookie(name) { var start = document.cookie.indexOf(name); var end = document.cookie.indexOf(";",start); return start==-1 ? null : unescape(document.cookie.substring(start+name.length+1,(end>start ? end : document.cookie.length))); } function showOverPrint(obj,isMulti){ var url = obj.getAttribute("url"); if (!isMulti) { sendmsg(url,'',obj.id); return false; } var overprintTids = getObj('overprinttids').value; sendmsg(url,'tidarray=' + overprintTids,obj.id); return false; } function operateOverPrint(text){ /*主题印戳*/ if (typeof(text[1]) != 'undefined' && in_array(text[1],['overprint'])) { var overprint = getObj("read_overprint"); if(overprint && typeof(text[2]) != 'undefined'){ var img = overprint.getElementsByTagName("img")[0]; if(!img){ img = document.createElement("img"); img.src = text[2]; overprint.appendChild(img); }else{ img.src = text[2];/*图标切换*/ } if(text[2] == ""){ overprint.removeChild(img); } } /*是否存在后续操作*/ if(typeof(text[3]) == 'undefined'){ showDialog('',text[0],2); } if(typeof(text[3]) != 'undefined' && text[3] == "nextto"){ sendmsg(text[4],text[5],text[6]); } return true;; }else{ return false; } } function showViewLog(url,data,id){ read.obj = (typeof id == 'undefined' || !id) ? null : getObj(id); read.guide(); setTimeout(function(){ajax.send(url,data,function(){ ajax.get(); document.body.onmousedown = function(event){ closep(); document.body.onmousedown = function(){}; } var box = getObj("pw_box"); if(box){ box.onmousedown = function(evt){ if(evt){ evt.stopPropagation(); }else{ event.cancelBubble = true; } } } });},100); } function uploadFile(ajaxForm,callback) { ajax.send(url, ajaxForm.cloneNode(true), callback); }