作者daniely ( )
看板Ajax
標題[問題] Ajax無法在Chrome,FireFox運作 IE可以
時間Tue Apr 26 13:51:13 2011
小弟剛初學 不知道怎麼克服瀏覽器的問題
以下程式碼是書上的範例, 執行後發現只能在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
1F:推 a517981:因為ActiveXObject這個物件只有IE有...其它瀏覽器不適用 04/26 14:28
2F:推 a517981:其它瀏覽器要用XMLHttpRequest物件 用法可以參考下面網址 04/26 14:30
4F:推 no1kk:跨瀏覽器的麻煩事,就交給套件去處理吧,你可以試試jQuery 04/26 15:14
7F:→ grence:書可以丟了,連標準都沒寫 04/26 20:32
8F:推 a517981:那本書可能是微軟推出的吧XD 04/27 00:51
9F:推 linhomeyeu:書可以丟了+1 04/27 02:40
10F:推 rexkimta:我覺得書可以賣了(誤 04/29 12:50