作者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