online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon magenta vom 24.05.2019, 14:18 Options

Ajax-Beispiel funktioniert nicht

Hallo Community,

ich befasse mich gerade mit Ajax. Und habe versucht eine simple
Beispielanwendung zu programmieren. D. h. einfach nur einen Text, der
in einer Textdatei gespreichert ist, nach Knopfdruck auf der HTML-Seite auszugeben. Das alles hat soweit geklappt.

Da beim Ajax-Einsatz aber die Vor- und Zurück-Schaltflächen nicht funktionieren, versuche ich das mit weiterem JavaScript-Code zu lösen. Für die Mozilla-Browser ist mir das geglückt, beim Internet Explorer packe ich das leider nicht. Hier mein Quellcode der HTML-Seite "Http-Anfrage.html":

<html>
<head>
<script language="JavaScript"
  type="text/javascript">
// <![CDATA[
var OBJEKT = null;
var file = null;

if (window.XMLHttpRequest) {
  OBJEKT = new XMLHttpRequest();
} else if (window.ActiveXObject) {
  try {
    OBJEKT =
      new ActiveXObject("Msxml2.XMLHTTP");
  } catch (ex) {
    try {
      OBJEKT =
       new ActiveXObject("Microsoft.XMLHTTP");
    } catch (ex) {
    }
  }
}

function DatenAusgeben() {
  if (OBJEKT.readyState == 4) {
    var d = document.getElementById("Daten");
    d.innerHTML += OBJEKT.responseText;

    if (location.hash != "#" + escape(file)) {
      location.hash = "#" + escape(file);      // Dateiname einfügen

    }
  }
}

function ladeDaten() {
  if (OBJEKT.readyState < 4) {
  OBJEKT.abort();
  }

  file = "daten.txt";
  OBJEKT.open("GET", file);
  OBJEKT.onreadystatechange = DatenAusgeben;
  OBJEKT.send(null);
}

window.onload = function() {
  if(location.hash.length > 1) {
    file = unescape(location.hash.substring(1));
    ladeDaten();
   }
}

window.setInterval(
  function() {
    if (location.hash.length > 1 &&
        location.hash != "#" + escape(file)) {
      file = unescape(location.hash.substring(1));
      ladeDaten();
    } else if (location.hash.length <= 1 &&
               document.getElementById("Daten").innerHTML != "Daten vom Server: ") {
        location.reload();
        file = null;
      }
    with (window.frames["loader"].window.location) {
      if (search != "?" + escape(location.hash.substring(1)) &&
          window.ActiveXObject) {
        search = "?" + escape(location.hash.substring(1));
      }
    }
  },
  250
);

// ]]>
</script>
</head>

<body>
  <p id="Daten">Daten vom Server: </p>
  <form action="">
   <p>
     <input type="button" value="Anfrage senden" onclick="javascript:ladeDaten()">
   </p>
  </form>
  <iframe src="Link-Loader.html" name="loader" style="display:none"></iframe>
</body>
</html>


Damit beim Internet Explorer ein Eintrag in die History erzwungen wird, dient das folgende versteckte Iframe "Link-Loader.html":

<html>
<head>
<script type="text/javascript">
<!--
if (window.ActiveXObject &&
"?" + top.location.hash.substring(1) != unescape(location.search)) {
top.location.hash = unescape(location.search.substring(1));
top.ladeDaten;
}
//-->
</script>
</head>
<body>
</body>
</html>



Und hier noch zur Ergänzugn der Inhalt der Textdatei "daten.txt":

Ajax ermoeglicht spannende Effekte !!!



Wenn mir einer von euch helfen könnte, wäre ich sehr dankbar. Denn ich komme nicht mehr weiter. Ich habe zwar geschafft im IE die Zurück-Schaltläche zum Fuktionieren zu bringen, aber die Vor-Schaltfäche funktioniert nicht.

Vorab schon vielen, vielen Dank.

Grüße
magenta


Antwort schreiben

Antwort 1 von rfb vom 24.05.2019, 16:17 Options

möglicherweise wäre es den Helfern hilfreich, wenn du deinen Quelltext etwas kommentieren würdest um die Beziehungen der Funktionen und globalen Variablen untereinander etwas leichter zu durchdringen.

Ähnliche Themen

Ajax reload
webweber  15.04.2007 - 265 Hits - 1 Antwort

Formatierungsbroblem beim Anzeigen von Datein mittels AJAX
Klaus1  22.05.2007 - 60 Hits - 12 Antworten

AJAX geht net
Fassy91  14.08.2007 - 31 Hits - 12 Antworten

Wie funktioniert die Wiederholungsspalte (Beispiel)
Werner9502  29.05.2008 - 24 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026