完美兼容IE、FF、Opera的Ajax类支持get、post、自定义回调函数(转载待测)
珙桐389 次
Js代码
function Ajax(){
this.httpXML=false;
this.init();
}
Ajax.prototype.init=function(){
if(window.XMLHttpRequest){
this.httpXML=new XMLHttpRequest();
if (this.httpXML.overrideMimeType){
this.httpXML.overrideMimeType("text/xml");
}
}else if(window.ActiveXObject){
try{this.httpXML = new ActiveXObject("Msxml2.XMLHTTP");}catch (e){
try{this.httpXML = new ActiveXObject("Microsoft.XMLHTTP");}catch (e){}
}
}
if(!this.httpXML){
window.alert("can't create XMLHttpRequest object");
return null;
}
}
Ajax.prototype.send=function(_method,_url,_data,_callback){
this.httpXML.onreadystatechange=function(){
if(this.readyState==4&&this.status==200){
_callback.call(this,this.responseText);
}
}
if (_method.toLowerCase() == "get"){
//if(navigator.userAgent.indexOf("MSIE")<=0){
// netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
//}
this.httpXML.open(_method, _url, true);
this.httpXML.send(null);
}else if (_method.toLowerCase() == "post"){
this.httpXML.open(_method, _url, true);
this.httpXML.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
this.httpXML.send(_data);
}
}
Ajax.prototype.callback=function(){
}function Ajax(){
this.httpXML=false;
this.init();
}
Ajax.prototype.init=function(){
if(window.XMLHttpRequest){
this.httpXML=new XMLHttpRequest();
if (this.httpXML.overrideMimeType){
this.httpXML.overrideMimeType("text/xml");
}
}else if(window.ActiveXObject){
try{this.httpXML = new ActiveXObject("Msxml2.XMLHTTP");}catch (e){
try{this.httpXML = new ActiveXObject("Microsoft.XMLHTTP");}catch (e){}
}
}
if(!this.httpXML){
window.alert("can't create XMLHttpRequest object");
return null;
}
}
Ajax.prototype.send=function(_method,_url,_data,_callback){
this.httpXML.onreadystatechange=function(){
if(this.readyState==4&&this.status==200){
_callback.call(this,this.responseText);
}
}
if (_method.toLowerCase() == "get"){
//if(navigator.userAgent.indexOf("MSIE")<=0){
// netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
//}
this.httpXML.open(_method, _url, true);
this.httpXML.send(null);
}else if (_method.toLowerCase() == "post"){
this.httpXML.open(_method, _url, true);
this.httpXML.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
this.httpXML.send(_data);
}
}Ajax.prototype.callback=function(){
}
Html代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>完美兼容IE、FF、Opera浏览器</title>
<script type="text/javascript" src="js/ajax.js"></script>
<script type="text/javascript">
function send(){
ajax=new Ajax();
ajax.send("get","listener/Hajax.ashx","post测试请求",ddd);
}
function ddd(data){
alert(data);
}
</script>
</head>
<body>
<button onclick="send()">测试</button>
</body>
</html><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>完美兼容IE、FF、Opera浏览器</title>
<script type="text/javascript" src="js/ajax.js"></script>
<script type="text/javascript">
function send(){
ajax=new Ajax();
ajax.send("get","listener/Hajax.ashx","post测试请求",ddd);
}
function ddd(data){
alert(data);
}
</script>
</head>
<body>
<button onclick="send()">测试</button>
</body>
</html>
评论 | 0 条评论