2010-09-30 131 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