4k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
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?

15 Antworten

0 Punkte
Beantwortet von supermax Experte (4.8k Punkte)
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.
0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
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.
0 Punkte
Beantwortet von
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
0 Punkte
Beantwortet von dapascha Mitglied (541 Punkte)
Hi,


function ausgeben() {
if (http.readyState == 4) {
document.getElementById("tickerText").innerHTML = http.responseText;
}
} }


am Ende des Skriptes ist eine }-Klammer zu viel.

Gruß DaPascha
0 Punkte
Beantwortet von
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.
0 Punkte
Beantwortet von
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).
0 Punkte
Beantwortet von
dann wirds auch mit der Hilfe nix! IE-Fehlermeldungen kannst du vergessen.
Hast du wenigstens deine Seite online?
0 Punkte
Beantwortet von supermax Experte (4.8k Punkte)
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.
0 Punkte
Beantwortet von
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.
0 Punkte
Beantwortet von
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?
...