Veröffentlicht 18. Oktober 200519 j Hallo zusammen, ich habe mit JavaScript einen Ticker gebastelt. Der geht auch wunderbar mit dem IE. Aber mit dem Firefox irgendwie überhaupt nicht. Ich habe es jetzt soweit eingegrenzt, dass er in der Funktion function ticker_aktualisieren() { window.document.getElementById("ticker").innerHTML = reloadticker.formular.nachricht.value window.setTimeout("ticker_aktualisieren()",5000); } [/code] bei dem window.document.getElementById("ticker")..... im Firefox baden geht und ticker_aktualsieren nicht wieder aufgerufen wird. Ich habe es mit einem alert("hallo") getestet. Wenn das window.document.getElementById("ticker").... nicht drin ist wird der alert alle 5 Sekunden ausgegeben. Hat jemand eine Idee? Frank
18. Oktober 200519 j Hi Frank, ich meine in Erinnerung zu haben, dass "innerHTML" nur beim IE geht. Versuch mal stattdesssen "innerText". Gruß, Markus
18. Oktober 200519 j hi, Dein reloadticker.formular.nachricht.value läuft gg die wand. was willst Du bezwecken ? gruss
18. Oktober 200519 j ich meine in Erinnerung zu haben, dass "innerHTML" nur beim IE geht. Versuch mal stattdesssen "innerText". Hi! Muss das leider widerlegen, innerHTML ist eine ganz normale Javascript Eigenschaft: http://de.selfhtml.org/javascript/objekte/all.htm#inner_html Ich nutze innerHTML auch öfter mal, funktioniert durch die Browser. Grüße, Tobias
19. Oktober 200519 j ich habe vor 'Monaten' mal versucht ein Script zu schreiben das innerHTML, document.write und ähnliches benutzt...nach langer suche hat man mir dann erklärt das diese Befehle veraltet sind und nicht mehr unterstützt werden. Stattdessen ist mit Javascript-DOM das HTML-Element bzw. Textelement zu verändern. Entsprechend verwirrt bin ich, das es im Selfhtml drinsteht.
19. Oktober 200519 j Ich meine ich würde auch noch innerHTML nutzen und das geht auch. Vielleicht postet du mal was in der JavaScript Konsole für ein Fehler kommt. Dann kann man vielleicht auch besser ansetzen.
19. Oktober 200519 j ich habe vor 'Monaten' mal versucht ein Script zu schreiben das innerHTML, document.write und ähnliches benutzt...nach langer suche hat man mir dann erklärt das diese Befehle veraltet sind und nicht mehr unterstützt werden. Stattdessen ist mit Javascript-DOM das HTML-Element bzw. Textelement zu verändern. Entsprechend verwirrt bin ich, das es im Selfhtml drinsteht. Hi! Also veraltet ist es nicht, es wird jedoch immer weniger benutzt. Ein Grund ist z.B., dass X(H)TML Dokumente nicht gültig sind wenn document.write benutzt wird. Man benutzt dann eher document.createTextNode und appendChild und sowas (also Methoden Strikt nach dem DOM). Gruß, Tobias
20. Oktober 200519 j Autor Also sowohl window.document.getElementById("ticker").innerText = "hallo"; als auch reloadticker.formular.nachricht.value = "hallo"; funktionieren ncht. Frank
20. Oktober 200519 j Autor Vielleicht postet du mal was in der JavaScript Konsole für ein Fehler kommt. Dann kann man vielleicht auch besser ansetzen. Das ist es ja. Es kommt kein JS Fehler. Oder zeigt der Firefox JS Fehler nicht unten links in der Ecke an wie der IE? Frank
20. Oktober 200519 j Das ist es ja. Es kommt kein JS Fehler. Oder zeigt der Firefox JS Fehler nicht unten links in der Ecke an wie der IE? Frank Nein, zeigt er nicht, dafür gibt es unter Extras die JavaScript-Konsole
20. Oktober 200519 j Autor Ah. Nun gut. Fehler: reloadticker.formular has no properties Quelldatei: ticker.js Zeile: 55 Da steht: window.document.getElementById("ticker").innerText = reloadticker.formular.nachricht.value Frank
20. Oktober 200519 j Was ist denn dein realoadticker für ein Objekt? Global? Was soll "reloadticker.formular.nachricht.value" denn sein? Sollte es vielleicht "document.formular.nachricht.value" sein? Gruß, Markus
21. Oktober 200519 j ich empfehle da mit getElementById und nicht mit document.formular.name... zu arbeiten, das ist allgemein sicherer gegen evtl. Namenskollisionen. Im javascript sind bestimmte Wörter reserviert (name, form, value u.a.) und wenn so ein fall auftritt gibt es oft keine 'verständlichen' Fehlermeldungen.
21. Oktober 200519 j Autor Also reloadticker ist ein iframe. Im iframe wird eine refresh.php geladen. Und dort ist formular das Form und nachricht die Textbox. Frank
21. Oktober 200519 j Hi, gib dem Iframe eine ID und dem Object, das du darin suchst auch. document.getElementById('IFrame_obj').document.getElementById('Such_obj') Gruß, Markus
22. Oktober 200519 j Autor Also irgendwie funktioniert das nicht. In der Hauptdatei steht: <script type="text/javascript"> <!-- window.setTimeout("ticker_aktualisieren()",1000); --> </script> <iframe src="refresh.php" width="600" height="50" border="0" id="iframereload" name="reloadticker"></iframe> [/code] In der refresh.php steht: [code] <form name="formular"> <input tpye="text" id="nachricht_neu" name="nachricht" size="80" value="<?PHP echo $ausgabetext; ?>"> </form> Die Funktion ticker_aktualisieren sieht wie folgt aus: function ticker_aktualisieren() { alert(document.getElementById('iframereload').document.getElementById('nachricht_neu').value); window.setTimeout("ticker_aktualisieren()",5000); } [/code] Als Meldung kommt nur NULL. Frank
23. Oktober 200519 j Autor So er funktioniert jetzt nachdem ich ein bischen mit JS und den Funktionen gespielt habe. Eine wichtige Änderung ist, dass ich die ticker_aktualisieren aus der JS Datei genommen hab und direkt in die Seite gesetzt habe. Frank
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.