Supportnet Computer
Planet of Tech

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

Ajax-Beispiel funktioniert nicht





Frage

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 "[b]Http-Anfrage.html[/b]": [code]<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> [/code] Damit beim Internet Explorer ein Eintrag in die History erzwungen wird, dient das folgende versteckte Iframe "[b]Link-Loader.html[/b]": [code]<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>[/code] Und hier noch zur Ergänzugn der Inhalt der Textdatei "[b]daten.tx[/b]t": [code]Ajax ermoeglicht spannende Effekte !!![/code] 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 1 von rfb

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.