1. 程式人生 > >解決Ajax建立物件相容性

解決Ajax建立物件相容性

     建立Ajax物件有如下方式

var xhr=new ActiveXObject('Microsoft.XMLHTTP');
var xhr=new XMLHttpRequest();
第一種方式只是支援IE瀏覽器,如果用這種方式建立的話,在其它瀏覽器中就不起作用了。

第二種方式在IE高版本也支援這種方式的建立方式,其它瀏覽器也支援這種建立方式。

那麼對於這種相容性問題,怎麼解決呢?

如下程式碼是封裝成一個函式放在js檔案中的,第一種方式:

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('請更換瀏覽器!');
}
建立一個html進行測試
<!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>

這樣就在瀏覽器訪問都能訪問到這個物件了。