[問題] Ajax無法在Chrome,FireFox運作 IE可以

看板Ajax作者 ( )時間14年前 (2011/04/26 13:51), 編輯推噓6(604)
留言10則, 5人參與, 最新討論串1/1
小弟剛初學 不知道怎麼克服瀏覽器的問題 以下程式碼是書上的範例, 執行後發現只能在IE上面運作 Chrome和Firefox完全不行, 想請教板上前輩 我該怎麼去解決這個問題 讓IE、Chrome、Firefox同時都能運作呢? <HTML> <HEAD> <title>以AJAX取得Server回傳的XML文件</title> </HEAD> <script language="javascript"> <!-- function processRequest(){ //取得使用者選取的選單值 var selectValueUrl=document.getElementById('bookList').value; //宣告準備儲存XMLHttpRequest物件變數 var http_request = false; if(window.ActiveXObject) { try {http_request = new ActiveXObjext("MSXML2.XMLHTTP.6.0");} catch (e){ try {http_request = new ActiveXObjext("MSXML2.XMLHTTP.5.0");} catch (e){ try {http_request = new ActiveXObjext("MSXML2.XMLHTTP.4.0");} catch (e){ try {http_request = new ActiveXObjext("MSXML2.XMLHTTP.3.0");} catch (e){ try {http_request = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) { try {http_request = new ActiveXObject("Microsoft.XMLHTTP");} catch (e){} }}}}} //設定onreadystatechange由showBooks方法做處理 http_request.onreadystatechange = function() { showBooks(http_request); }; //設定傳送方法及目標網址 http_request.open('GET', selectValueUrl, true); //發送AJAX請求 http_request.send(null); } } //處理伺服器回傳狀態 function showBooks(http_request) { //判斷目前HTTP連結狀態 if (http_request.readyState == 4) { //取得HTTP連結的回應狀態碼,傳回200代表伺服器已正常回應 if (http_request.status == 200) { var xmlDoc=http_request.responseXML.documentElement; //將接收到的XML文件,取出TAG中的資料後,設定到頁面中的標籤中 document.getElementById("bookName").innerHTML= xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue; document.getElementById("date").innerHTML= xmlDoc.getElementsByTagName("date")[0].childNodes[0].nodeValue; document.getElementById("price").innerHTML= xmlDoc.getElementsByTagName("price")[0].childNodes[0].nodeValue; } else { alert('找不到此書!!'); } } } // --> </script> <BODY> <CENTER> <FONT SIZE="5" COLOR="BLUE">以AJAX取得Server回傳的XML文件</FONT> </CENTER> <HR> <font size="4">請選取書名稱,以取得詳細資料: <select name="bookList" onChange="processRequest();"> <option value="none" selected="1">--</option> <option value="books_JSP.xml">JSP動態網頁入門實務</option> <option value="books_Access.xml">Access 2007 程式設計</option> </select><br/> <HR> 書籍名稱:<label id="bookName"></label><br> 發行日期:<label id="date"></label><br> 價格:<label id="price"></label> </font> </BODY> </HTML> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.248.107

04/26 14:28, , 1F
因為ActiveXObject這個物件只有IE有...其它瀏覽器不適用
04/26 14:28, 1F

04/26 14:30, , 2F
其它瀏覽器要用XMLHttpRequest物件 用法可以參考下面網址
04/26 14:30, 2F

04/26 14:31, , 3F

04/26 15:14, , 4F
跨瀏覽器的麻煩事,就交給套件去處理吧,你可以試試jQuery
04/26 15:14, 4F

04/26 15:15, , 5F
是javascript的套件,中文說明http://0rz.tw/GSXzC
04/26 15:15, 5F

04/26 15:16, , 6F
04/26 15:16, 6F

04/26 20:32, , 7F
書可以丟了,連標準都沒寫
04/26 20:32, 7F

04/27 00:51, , 8F
那本書可能是微軟推出的吧XD
04/27 00:51, 8F

04/27 02:40, , 9F
書可以丟了+1
04/27 02:40, 9F

04/29 12:50, , 10F
我覺得書可以賣了(誤
04/29 12:50, 10F
文章代碼(AID): #1DjbrJ-N (Ajax)
文章代碼(AID): #1DjbrJ-N (Ajax)