<!--
//xmlhttp和xmldom对象
var DedeXHTTP = null;
var DedeXDOM = null;
var DedeContainer = null;
var DedeShowError = false;
var DedeShowWait = false;
var DedeErrCon = "";
var DedeErrDisplay = "下载数据失败";
var DedeWaitDisplay = "正在下载数据...";
//获取指定ID的元素
function $DE(id) {
return document.getElementById(id);
}
//gcontainer 是保存下载完成的内容的容器
//mShowError 是否提示错误信息
//DedeShowWait 是否提示等待信息
//mErrCon 服务器返回什么字符串视为错误
//mErrDisplay 发生错误时显示的信息
//mWaitDisplay 等待时提示信息
//默认调用 DedeAjax('divid',false,false,'','','')
function DedeAjax(gcontainer,mShowError,mShowWait,mErrCon,mErrDisplay,mWaitDisplay)
{
DedeContainer = gcontainer;
DedeShowError = mShowError;
DedeShowWait = mShowWait;
if(mErrCon!="") DedeErrCon = mErrCon;
if(mErrDisplay!="") DedeErrDisplay = mErrDisplay;
if(mErrDisplay=="x") DedeErrDisplay = "";
if(mWaitDisplay!="") DedeWaitDisplay = mWaitDisplay;
//post或get发送数据的键值对
this.keys = Array();
this.values = Array();
this.keyCount = -1;
this.sendlang = 'gb2312';
//请求头类型
this.rtype = 'text';
//初始化xmlhttp
//IE6、IE5
if(window.ActiveXObject) {
try { DedeXHTTP = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) { }
if (DedeXHTTP == null) try { DedeXHTTP = new ActiveXObject("Microsoft.XMLHTTP");} catch (e) { }
}
else {
DedeXHTTP = new XMLHttpRequest();
}
//增加一个POST或GET键值对
this.AddKeyN = function(skey,svalue) {
if(this.sendlang=='utf-8') this.AddKeyUtf8(skey, svalue);
else this.AddKey(skey, svalue);
};
this.AddKey = function(skey,svalue) {
this.keyCount++;
this.keys[this.keyCount] = skey;
svalue = svalue+'';
if(svalue != '') svalue = svalue.replace(/\+/g,'$#$');
this.values[this.keyCount] = escape(svalue);
};
//增加一个POST或GET键值对
this.AddKeyUtf8 = function(skey,svalue) {
this.keyCount++;
this.keys[this.keyCount] = skey;
svalue = svalue+'';
if(svalue != '') svalue = svalue.replace(/\+/g,'$#$');
this.values[this.keyCount] = encodeURI(svalue);
};
//增加一个Http请求头键值对
this.AddHead = function(skey,svalue) {
this.rkeyCount++;
this.rkeys[this.rkeyCount] = skey;
this.rvalues[this.rkeyCount] = svalue;
};
//清除当前对象的哈希表参数
this.ClearSet = function() {
this.keyCount = -1;
this.keys = Array();
this.values = Array();
this.rkeyCount = -1;
this.rkeys = Array();
this.rvalues = Array();
};
DedeXHTTP.onreadystatechange = function() {
//在IE6中不管阻断或异步模式都会执行这个事件的
if(DedeXHTTP.readyState == 4){
if(DedeXHTTP.status == 200)
{
if(DedeXHTTP.responseText!=DedeErrCon) {
DedeContainer.innerHTML = DedeXHTTP.responseText;
}
else {
if(DedeShowError) DedeContainer.innerHTML = DedeErrDisplay;
}
DedeXHTTP = null;
}
else { if(DedeShowError) DedeContainer.innerHTML = DedeErrDisplay; }
}
else { if(DedeShowWait) DedeContainer.innerHTML = DedeWaitDisplay; }
};
//检测阻断模式的状态
this.BarrageStat = function() {
if(DedeXHTTP==null) return;
if(typeof(DedeXHTTP.status)!=undefined && DedeXHTTP.status == 200)
{
if(DedeXHTTP.responseText!=DedeErrCon) {
DedeContainer.innerHTML = DedeXHTTP.responseText;
}
else {
if(DedeShowError) DedeContainer.innerHTML = DedeErrDisplay;
}
}
};
//发送http请求头
this.SendHead = function()
{
//发送用户自行设定的请求头
if(this.rkeyCount!=-1)
{
for(var i = 0;i<=this.rkeyCount;i++)
{
DedeXHTTP.setRequestHeader(this.rkeys[i],this.rvalues[i]);
}
}
if(this.rtype=='binary'){
DedeXHTTP.setRequestHeader("Content-Type","multipart/form-data");
}else{
DedeXHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
}
};
//用Post方式发送数据
this.SendPost = function(purl) {
var pdata = "";
var i=0;
this.state = 0;
DedeXHTTP.open("POST", purl, true);
this.SendHead();
//post数据
if(this.keyCount!=-1)
{
for(;i<=this.keyCount;i++)
{
if(pdata=="") pdata = this.keys[i]+'='+this.values[i];
else pdata += "&"+this.keys[i]+'='+this.values[i];
}
}
DedeXHTTP.send(pdata);
};
//用GET方式发送数据
this.SendGet = function(purl) {
var gkey = "";
var i=0;
this.state = 0;
//get参数
if(this.keyCount!=-1)
{
for(;i<=this.keyCount;i++)
{
if(gkey=="") gkey = this.keys[i]+'='+this.values[i];
else gkey += "&"+this.keys[i]+'='+this.values[i];
}
if(purl.indexOf('?')==-1) purl = purl + '?' + gkey;
else purl = purl + '&' + gkey;
}
DedeXHTTP.open("GET", purl, true);
this.SendHead();
DedeXHTTP.send(null);
};
//用GET方式发送数据,阻塞模式
this.SendGet2 = function(purl) {
var gkey = "";
var i=0;
this.state = 0;
//get参数
if(this.keyCount!=-1)
{
for(;i<=this.keyCount;i++)
{
if(gkey=="") gkey = this.keys[i]+'='+this.values[i];
else gkey += "&"+this.keys[i]+'='+this.values[i];
}
if(purl.indexOf('?')==-1) purl = purl + '?' + gkey;
else purl = purl + '&' + gkey;
}
DedeXHTTP.open("GET", purl, false);
this.SendHead();
DedeXHTTP.send(null);
//firefox中直接检测XHTTP状态
this.BarrageStat();
};
//用Post方式发送数据
this.SendPost2 = function(purl) {
var pdata = "";
var i=0;
this.state = 0;
DedeXHTTP.open("POST", purl, false);
this.SendHead();
//post数据
if(this.keyCount!=-1)
{
for(;i<=this.keyCount;i++)
{
if(pdata=="") pdata = this.keys[i]+'='+this.values[i];
else pdata += "&"+this.keys[i]+'='+this.values[i];
}
}
DedeXHTTP.send(pdata);
//firefox中直接检测XHTTP状态
this.BarrageStat();
};
} // End Class DedeAjax
//初始化xmldom
function InitXDom() {
if(DedeXDOM!=null) return;
var obj = null;
// Gecko、Mozilla、Firefox
if (typeof(DOMParser) != "undefined") {
var parser = new DOMParser();
obj = parser.parseFromString(xmlText, "text/xml");
}
// IE
else {
try { obj = new ActiveXObject("MSXML2.DOMDocument");} catch (e) { }
if (obj == null) try { obj = new ActiveXObject("Microsoft.XMLDOM"); } catch (e) { }
}
DedeXDOM = obj;
};
//读写cookie函数
function GetCookie(c_name)
{
if (document.cookie.length > 0)
{
c_start = document.cookie.indexOf(c_name + "=")
if (c_start != -1)
{
c_start = c_start + c_name.length + 1;
c_end = document.cookie.indexOf(";",c_start);
if (c_end == -1)
{
c_end = document.cookie.length;
}
return unescape(document.cookie.substring(c_start,c_end));
}
}
return null
}
function SetCookie(c_name,value,expiredays)
{
var exdate = new Date();
exdate.setDate(exdate.getDate() + expiredays);
document.cookie = c_name + "=" +escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString()); //使设置的有效时间正确。增加toGMTString()
}
//ajax调用
function ajax(id,url)
{
var taget_obj = document.getElementById(id);
myajax = new DedeAjax(taget_obj,false,false,'','','');
myajax.SendGet2(url);
DedeXHTTP = null;
}
-->
<div id="ajax1"><a href="javascript:ajax('ajax1','xx.php')">AJAX测试</a></div>