解決Ajax建立物件相容性
阿新 • • 發佈:2019-02-05
建立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>
這樣就在瀏覽器訪問都能訪問到這個物件了。