window.ActiveXObject,返回一個bool值,看瀏覽器是否支援ActiveX控制項
3//針對不同瀏覽器,擷取XMLHttpRequest對象
4function CreateXMLHttpRequest()
5{
6 if(window.ActiveXObject)
7 {
8 xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
9 }
10 else
11 {
12 xmlHttp=new XMLHttpResquest();
13 }
14}
16//單擊btnSayHello時調用的JS函數
17function btnSayHello_onClick()
18{
19 CreateXMLHttpRequest();
20 xmlHttp.onreadystatechange=HandleStateChange;
21 xmlHttp.open("POST","Output.aspx",true);
22 xmlHttp.send(null);
23}
24
25//回呼函數
26function HandleStateChange()
27{
28 if(xmlHttp.readyState==4)
29 {
30 if(xmlHttp.status==200)
31 {
32 document.getElementById("result").innerHTML = xmlHttp.responseText;
33 }
34 }
35}
下面我對這個代碼進行一個簡要的解釋。 首先,xmlHttp是一個全域變數,它被初始化後,將負責整個Ajax應用的核心。CreateXMLHttpRequest方法用來得到 XMLHttpRequest對象的執行個體,這裡我們注意到,由於不同瀏覽器的擷取對象方法不同,這裡首先要檢測瀏覽器類型,然後使用相應方法獲得對象,十 分麻煩。btnSayHello_onClick是一個核心函數,當按鈕被單擊時,將調用這個函數。它首先初始化xmlHttp,然後指定回呼函數為 HandleStateChange,最後非同步發布POST請求,調用Output.aspx頁面。最後,HandleStateChange作為回調函 數,在xmlHttp的請求狀態發生改變時將自動被調用。而在這個函數中,當狀態正常時,將id為“result”的DIV的內容設為調用結果。即 Output.aspx輸出的字串