AJAX funktioniert nicht
Hallo!
Ich hoffe, ihr könnt mir helfen.
Ich möchte einen vertikalen News-Scroller auf allen WEB-Seiten einsetzen, aber nicht den Text laufend auf allen Seiten eintragen müssen. Deshalb möchte ich AJAX einsetzen. Der Scroller funktioniert, wenn ich den anzuzeigenden Text direkt in die
ticker.htm einsetze. Nur nicht, wenn ich es über AJAX machen möchte.
Alle für die Funktion notwendigen Dateien befinden sich im Ordner
vScroller:
ticker.htm - in der der Scroller erscheint im Ordner vScroller abgelegt.
ajax.js - als externe Datei im Ordner vScroller abgelegt.
----------------------------------------------
var http = null;
if (window.XMLHttpRequest) {
http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
http = new ActiveXObject("Microsoft.XMLHTTP");
}
if (http != null) {
http.open("GET","./TickerText.htm", true);
http.onreadystatechange = ausgeben;
http.send(null);
}
function ausgeben() {
if (http.readyState == 4) {
document.getElementById("tickerText").innerHTML = http.responseText;
}
} }
TickerText.htm - Text, der eingefügt werden soll im Ordner vScroller abgelegt.
-----------------------------------------
Das ist der Ticker-Text.<br>
Hier kann auch irgend ein HTML-Code stehen.<br>
Wie dieses Bild z.B.<br>
<br>
<img src="../BilderArray/mickey.gif" alt="" width="150" height="113" border="0"><br>
<br>
Es sind natürlich auch <a href="#">Links</a> möglich.<br>
Was stimmt nicht?
Antwort schreiben
Antwort 1 von Supermax vom 19.06.2021, 10:36 Options
Eventuell wird dein JavaScript aufgerufen, bevor das komplette Dokument geladen ist, und das Element, in das der dynamisch geholte Inhalt eingefügt werden soll, existiert noch gar nicht.
Der ganze AJAX-Code sollte besser im onload-Event ausgeführt werden.
Antwort 2 von son_quatsch vom 19.06.2021, 10:38 Options
Zwei Sachen:
if (http.readyState == 4) {
document.getElementById("tickerText").innerHTML = http.responseText;
}
...umändern in...
if (http.readyState == 4) {
var e= document.getElementById("tickerText");
if ( !e ) alert( 'element existiert nicht!' ) else e.innerHTML = http.responseText;
} else alert( 'status '+ http.readyState );
Damit erkennst du erst einmal, wenn etwas NICHT geladen werden kann und falls doch, was außerdem noch schieflaufen könnte. Sollte also ein JavaScript-Alert-Fenster aufgehen, dann sag uns dessen Inhalt.
Antwort 3 von Juergen52 vom 19.06.2021, 14:18 Options
Ich danke euch Beiden für euere Unterstützung.
Ich habe den Vorschlag von Antwort 2 eingefügt. Es wird kein alert-Fenster angezeigt. Es kommt auch keine ander Fehlermeldung. Wenn ich das AJAX-Script durch einen Doppelklick starte wird folgendes angezeigt:
Zeile: 20, Zeichen 53, Fehler: ";" erwartet
Antwort 4 von DaPascha vom 19.06.2021, 14:28 Options
Hi,
function ausgeben() {
if (http.readyState == 4) {
document.getElementById("tickerText").innerHTML = http.responseText;
}
} }
am Ende des Skriptes ist eine }-Klammer zu viel.
Gruß DaPascha
Antwort 5 von gast42 vom 19.06.2021, 17:08 Options
Zitat:
Was stimmt nicht?
schau erst einmal in die JavaScript- bzw. Fehlerkonsole des Firefox (Menü Extras). Die meisten Fehler kannst du dann selbst beheben, ansonsten hilft zumindest die Fehlermeldung anderen bei der Diagnose.
Antwort 6 von Juergen52 vom 20.06.2021, 09:16 Options
Das mit der Klammer ist beseitigt. Trotzdem noch der gleiche Fehler.
Firefox habe ich nicht installiert, da mein Rechner fast ausgelastet ist (Win98 und IE5.5).
Antwort 7 von gast42 vom 20.06.2021, 09:25 Options
dann wirds auch mit der Hilfe nix! IE-Fehlermeldungen kannst du vergessen.
Hast du wenigstens deine Seite online?
Antwort 8 von Supermax vom 20.06.2021, 11:41 Options
Lade dir mal den
MS Script Debugger for Windows 98/ME herunter.
Windows 98 ist für Web-Entwicklung eine denkbar ungeeignete Plattform, da du damit notgedrungen mit und damit für eine veraltete Browsertechnologie entwickelst und viele nützliche Tools für dieses Betriebssystem gar nicht mehr zur Verfügung stehen.
Wenn du deinen Computer nicht auf XP aufrüsten kannst oder willst und nicht unbedingt (z.B. für Spiele) auf Windows angewiesen bist, empfehle ich dir stattdessen Linux zu verwenden, wenn du ernsthaft Web-Entwicklung betreiben willst.
Antwort 9 von Juergen52 vom 20.06.2021, 16:21 Options
Der Debugger lässt sich nicht runter laden. Geht auch der Debugger unter dieser
Adresse?
Ich habe Firefox auf einen Stick als mobile Version, mit dem ich meine Webseiten gegenkontrolliere. Weiss aber nicht, ob es dafür ähnliche Komponenten gibt, die vom Stick aus funktionieren.
Antwort 10 von Juergen52 vom 20.06.2021, 17:03 Options
Hallo Leute!
Ich glaube, ich habe es gepackt, siehe hier
ticker.htm. Der Scroller funktioniert jetzt, nach ein Paar Änderungen. Ich habe das AJAX-Script in die ticker.htm eingefügt und es funktioniert und über onload beim Aufruf der Seite gestartet. Jetzt kommt nur noch der Fehler im Browserfenster links unten -
Zeile:32 Zeile:1 Fehler: Nicht impementiert Das ist die Zeile in der ticker.htm mit der window.onload-Funktion.
Was stimmt hier noch nicht?
Antwort 11 von Juergen52 vom 20.06.2021, 17:18 Options
Nachtrag:
Ich habe die onload-Funktion wieder rausgeschmissen und der Fehler ist weg.
Bleib nur noch die Frage : "Warum funktioniert das AJAX-Script nicht ale externe Datei?"
Antwort 12 von gast42 vom 20.06.2021, 19:39 Options
Deine Fragen kannst nur du selbst beantworten. Und mit deiner vorsintflutlichen Entwicklungsumgebung wird das nüscht! Besorg dir wenigstens mal eine Linux-Live-CD (Knoppix o.ä.) um deine Seite selbst mit anderen Browsern testen zu können.
Antwort 13 von Juergen52 vom 21.06.2021, 10:19 Options
@gast
Ich werde mir doch keine Kuh kaufen, wenn ich mal ein Glas Milch trinken möchte. Ich habe nicht vor Scripte zu programmieren.
Ich möchte lediglich den Scroller, den ich im Inet gefunden habe in einer Webseite über AJAX einbinden und da ich mich mit Scripten und AJAX nicht so richtig auskenne, habe ich auf euere Hilfe gehofft.
Werde das Scroller-Script sowieso verwefen, da es im Firefox nicht durchläuft, es springt immer zu früh wieder zurück.
Antwort 14 von gast42 vom 21.06.2021, 15:00 Options
der Begriff "vorsintflutlich" betrifft nicht nur den JavaScript-Teil deiner Seite!
Antwort 15 von DaPascha vom 22.06.2021, 15:51 Options
Hallo Juergen52,
habe ich dich richtig verstanden? Du möchtest das AJAX-Script von einer anderen Seite einbinden, also einer anderen Domain?
Wenn dies der Fall ist, dann wird das nichts, weil das Nachladen eines Inhaltes von einer fremden Domain zu einem Sicherheitsfehler führt.
Gruß DaPascha