2010-09-30 130 views
0

我写的这个脚本在IE上完美工作!它在第一次执行操作时在Chrome和FireFox上运行,但在其他操作上失败。Ajax在Chrome/FireFox中不能正常工作

该脚本很简单。您可以添加或删除用户,每次添加或删除用户时,都会更新更新列表。

function Add() { 
    http_request = false; 
    cache=Math.random(); 
    var username=document.getElementById('username').value; 
    if (window.XMLHttpRequest) { // Mozilla, Safari,... 
     http_request = new XMLHttpRequest(); 
     if (http_request.overrideMimeType) { 
     http_request.overrideMimeType('text/html'); 
     } 
    } else if (window.ActiveXObject) { // IE 
     try { 
     http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
     try { 
      http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
     } catch (e) {} 
     } 
    } 
    if (!http_request) { 
     return false; 
    } 
    http_request.onreadystatechange=function(){ if (http_request.readyState==4 && http_request.status==200){ if (http_request.responseText=="OK"){ Update(); } else { document.getElementById('Response').innerHTML=http_request.responseText; } } } 
    http_request.open('POST', 'add.php?username='+username+'&cache='+cache, true); 
    http_request.send(null); 
} 

function Delete(username) { 
    http_request = false; 
    if (window.XMLHttpRequest) { // Mozilla, Safari,... 
     http_request = new XMLHttpRequest(); 
     if (http_request.overrideMimeType) { 
     http_request.overrideMimeType('text/html'); 
     } 
    } else if (window.ActiveXObject) { // IE 
     try { 
     http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
     try { 
      http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
     } catch (e) {} 
     } 
    } 
    if (!http_request) { 
     return false; 
    } 
    http_request.onreadystatechange=function(){ if (http_request.readyState==4 && http_request.status==200){ Update(); } } 
    http_request.open('POST', 'delete.php?username='+username, true); 
    http_request.send(null); 
} 

function Update() { 
    http_request = false; 
    if (window.XMLHttpRequest) { // Mozilla, Safari,... 
     http_request = new XMLHttpRequest(); 
     if (http_request.overrideMimeType) { 
     http_request.overrideMimeType('text/html'); 
     } 
    } else if (window.ActiveXObject) { // IE 
     try { 
     http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
     try { 
      http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
     } catch (e) {} 
     } 
    } 
    if (!http_request) { 
     return false; 
    } 
    http_request.onreadystatechange=function(){ if (http_request.readyState==4 && http_request.status==200){ document.getElementById("list").innerHTML=http_request.responseText; } } 
    http_request.open('GET', 'list.php', true); 
    http_request.send(null); 
} 

请帮忙,谢谢您

+0

什么是错误信息?你是什​​么意思失败? – 2010-09-30 08:23:57

+0

这不是错误消息。在IE中你可以添加,删除用户没有任何问题。在FireFox和Chrome中,您可以添加或删除1个用户,然后当您尝试添加或删除第二个用户时,它会失败。 – CAKyleX 2010-09-30 08:36:10

回答

0

使用jQuery。你将不得不编写很多代码,它可以在所有浏览器中工作。

+0

谢谢,但我仍然想知道这个问题。另外我现在不喜欢学习JQuery。 :) – CAKyleX 2010-09-30 08:19:15

+0

没有什么要学习的 - 你会通过投资30分钟节省数小时... – 2010-09-30 08:22:55

+0

WOW! jQuery真棒!我会尝试现在写入jQuery。谢谢你们! :)但是,如果有人确定问题,请发布。 – CAKyleX 2010-09-30 09:12:01