创建Ajax对象有如下方式
var xhr=new ActiveXObject('Microsoft.XMLHTTP');
var xhr=new XMLHttpRequest();第一种方式只是支持IE浏览器,如果用这种方式创建的话,在其它浏览器中就不起作用了。
第二种方式在IE高版本也支持这种方式的创建方式,其它浏览器也支持这种创建方式。
那么对于这种兼容性问题,怎么解决呢?
function createxhr() { var xhr; //获取浏览器信息 var str=window.navigator.userAgent; //判断是否是IE浏览器 if(str.indexOf('MSIE')>0){ //创建一个对象 xhr=new ActiveXObject('Microsoft.XMLHTTP'); }else{ //创建一个对象 xhr=new XMLHttpRequest(); } return xhr; }第二种方式:
function createxhr() { try {return new XMLHttpRequest();} catch (e) {} try {return new ActiveXObject('Microsoft.XMLHTTP');} catch (e) {} alert('请更换浏览器!'); }
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <Meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>解决Ajax兼容性问题</title> <script type="text/javascript" src="public.js"></script> </head> <body> <script> var xhr=createxhr(); alert(xhr); </script> </body> </html>
这样就在浏览器访问都能访问到这个对象了。
原文链接:https://www.f2er.com/ajax/164537.html