online 1
gast (50)

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

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

Fragevon Juergen52 vom 19.06.2021, 10:10 Options

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

Ähnliche Themen

Microfon / Mikrofon funktioniert nicht
hrhr  21.02.2007 - 13097 Hits - 4 Antworten

Ajax wird nicht im Formular erkannt
Uesch  09.02.2009 - 139 Hits - 16 Antworten

Fragen zu AJAX
Juergen52  13.05.2009 - 282 Hits - 13 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