Ajax не работает правильно в Chrome / FireFox - PullRequest
0 голосов
/ 30 сентября 2010

Этот скрипт, который я написал, отлично работает на IE! Он работает в 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);
}

Пожалуйста, помогите и спасибо

1 Ответ

0 голосов
/ 30 сентября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...