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

Какое сообщение об ошибке? Что вы подразумеваете под неудачей? –

+0

Это сообщение об ошибке. В IE вы можете БЕСПЛАТНО, УДАЛИТЬ пользователей без проблем. В FireFox и Chrome вы можете ADD или DELETE 1 пользователь, а затем, когда вы пытаетесь ADD или DELETE второго пользователя, он терпит неудачу. – CAKyleX

ответ

0

Использование jQuery. Вам нужно будет написать много меньше кода, и он будет работать во всех браузерах.

+0

Спасибо, но я все еще хотел бы знать проблему. Плюс я не хочу сейчас изучать JQuery. :) – CAKyleX

+0

Существует не так много, чтобы учиться - и вы сэкономите время, инвестируя 30 минут ... –

+0

WOW! jQuery УДИВИТЕЛЬНО! Сейчас я попытаюсь записать его в jQuery. Спасибо вам всем! :) Но если кто-то выяснит проблему, отправьте ее. – CAKyleX

Смежные вопросы