📄 pw_ajax.js
字号:
function AjaxObj(){
this.responseText = null;
var s = document.createElement('div');
s.style.display = 'none';
s.innerHTML = '<iframe id="ajaxiframe" name="ajaxiframe" width="0" height="0"></iframe>';
document.body.appendChild(s);
this.iframe = s.firstChild;
this.post = function(url,data){
if(typeof data == 'string' && data!=''){
var f = document.createElement('form');
f.name = 'ajaxform';
f.target = 'ajaxiframe';
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.appendChild(f);
f.submit();
document.body.removeChild(f);
} else if(typeof data == 'object'){
data.target = 'ajaxiframe';
data.submit();
} else{
self.ajaxiframe.location = url;
}
}
}
function XMLhttp(){
this.request = null;
this.recall = null;
this.time = null;
this.t = null;
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;
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(is_ie){
ajax.request.responseText = ajax.request.iframe.contentWindow.document.XMLDocument.text;
ajax.request.iframe.detachEvent('onload',ajax.load);
} else{
ajax.request.responseText = ajax.request.iframe.contentWindow.document.documentElement.firstChild.nodeValue;
ajax.request.iframe.removeEventListener('load',ajax.load,true);
}
ajax.recall();
},
XmlDocument : function(obj){
return is_ie ? 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.action,obj,recall);
closep();
},
get : function(){
if(ajax.request.responseText.indexOf('<') != -1){
read.menu.innerHTML = ajax.request.responseText;
read.menu.className = 'menu';
read.menupz(read.obj,1);
} else{
closep();
ajax.guide();
}
},
guide : function(){
var rText = ajax.request.responseText.split('\t');
var o = ajax.create();
o.innerHTML = rText[0];
o.style.top = (ietruebody().scrollTop + 170) + 'px';
o.style.left = (ietruebody().clientWidth - o.offsetWidth)/2 + ietruebody().scrollLeft + 'px';
ajax.time = setTimeout("ajax.clear();",3000);
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();",200);
}
}
},
clear : function(){
if(IsElement('ajax_guide')) document.body.removeChild(getObj('ajax_guide'));
},
create : function(){
if(!IsElement('ajax_guide')){
var o = document.createElement('div');
o.style.cssText = 'border:#EFEF9D 1px solid;background:url('+imgpath+'/important.gif) no-repeat .5em center #FFFFD8;font:bold 14px Helvetica;text-align:center;padding:1em 1.5em 1em 4.5em;position:absolute;z-index:3005;';
o.id = 'ajax_guide';
document.body.appendChild(o);
} else{
clearTimeout(ajax.time);
var o = getObj('ajax_guide');
}
return o;
},
convert : function(str){
return str.replace(/\&/g,'%26');
},
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){
read.obj = typeof id == 'undefined' ? null : getObj(id);
read.guide();
setTimeout(function(){ajax.send(url,data,ajax.get);},300);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -