IE Fehler
Marco
- javascript
Hallo,
ich habe ein Fehler in IE 7/8
Meldung: 'partscollect.0.style' ist Null oder kein Objekt
Zeile: 246
Zeichen: 1
Code: 0
URI: http://www.fuckthesun.de/index.php?option=com_comprofiler&task=userProfile&Itemid=58&user=63
In Zeile 246 steht folgendes.
partscollect[0].style.display="block"
In Firefox funtzioniert alles einwandfrei.
Hat jemand eine Idee, wie ich das Problem beheben kann?
Bei Google habe ich keine Lösung gefunden.
Hier mal die Seite.
http://www.fuckthesun.de/index.php?option=com_comprofiler&task=userProfile&Itemid=58&user=63
Ich hoffe ihr könnt mir bei meinem Problem helfen.
Vielen Dank
mfg Marco
Mahlzeit Marco,
Generell gilt: "13 Errors, 1 warning(s)" ist stark verbesserungswürdig.
Meldung: 'partscollect.0.style' ist Null oder kein Objekt
partscollect[0].style.display="block"
Oft bedeutet diese Meldung, dass der Fehler davor aufgetreten ist. Zeile 245 lautet:
getElementbyClass("multiparts")
In Zeile 213 wird diese Funktion definiert. Dort werden in ein globales Array (von deren Benutzung bis auf wenige begründete Ausnahmefälle eigentlich generell abzuraten ist!) namens "partscollect" Elemente hineingeschrieben ... außer natürlich, wenn gar keine Elemente gefunden werden, die die entsprechende Klasse haben. Wird auf diesen Fehlerfall hin geprüft? Nein. Wieso wundert es Dich also, dass das Array auch mal *keine* Elemente haben kann?
Ergänzend möchte ich noch hinzufügen: Dein Code ist eine der grausamsten <div>-Suppen, die ich in letzter Zeit gesehen habe. Um Deiner selbst willen solltest Du Dich mit semantischem Markup beschäftigen: <http://de.selfhtml.org/css/layouts/einfuehrung.htm@title=Einführung in CSS-basierte Layouts>
MfG,
EKKi
hi,
Generell gilt: "13 Errors, 1 warning(s)" ist stark verbesserungswürdig.
Oh ja, das hast du recht. Wie finde ich denn herraus in welcher Datei die fehler sind?
Oft bedeutet diese Meldung, dass der Fehler davor aufgetreten ist. Zeile 245 lautet:
getElementbyClass("multiparts")
In Zeile 213 wird diese Funktion definiert. Dort werden in ein globales Array (von deren Benutzung bis auf wenige begründete Ausnahmefälle eigentlich generell abzuraten ist!) namens "partscollect" Elemente hineingeschrieben ... außer natürlich, wenn gar keine Elemente gefunden werden, die die entsprechende Klasse haben. Wird auf diesen Fehlerfall hin geprüft? Nein. Wieso wundert es Dich also, dass das Array auch mal *keine* Elemente haben kann?
Jetzt weiß ich was den fehler verursacht, wie behebe ich das Problem?
Ich habe überhaupt keine Ahnung von Javascript.
Ergänzend möchte ich noch hinzufügen: Dein Code ist eine der grausamsten <div>-Suppen, die ich in letzter Zeit gesehen habe. Um Deiner selbst willen solltest Du Dich mit semantischem Markup beschäftigen: <http://de.selfhtml.org/css/layouts/einfuehrung.htm@title=Einführung in CSS-basierte Layouts>
Werde mir das mal anschauen...
Vielen Dank
Mahlzeit Marco,
Oh ja, das hast du recht. Wie finde ich denn herraus in welcher Datei die fehler sind?
Keine Ahnung ... da Du bisher der einzige in diesem Thread bist, der weiß, was genau Du benutzt, um HTML-Code zu erzeugen (Deinen Worten und dem Code entnehme ich, dass es sich *nicht* um statische Seiten handelt), bist Du auch der einzige, der ansatzweise ahnen kann, was wo erzeugt wird.
Jetzt weiß ich was den fehler verursacht, wie behebe ich das Problem?
Indem Du abfragst, ob überhaupt Elemente gefunden/enthalten sind.
Ich habe überhaupt keine Ahnung von Javascript.
<http://de.selfhtml.org/javascript/intro.htm@title=Dann solltest Du das ändern.>
MfG,
EKKi
hi,
Keine Ahnung ... da Du bisher der einzige in diesem Thread bist, der weiß, was genau Du benutzt, um HTML-Code zu erzeugen (Deinen Worten und dem Code entnehme ich, dass es sich *nicht* um statische Seiten handelt), bist Du auch der einzige, der ansatzweise ahnen kann, was wo erzeugt wird.
Hm... das weiß ich leider nicht. Da die Homepage mit Joomla gemacht ist und ich nur die Inhalte mit Text oder Bildern fülle.
Jetzt weiß ich was den fehler verursacht, wie behebe ich das Problem?
Indem Du abfragst, ob überhaupt Elemente gefunden/enthalten sind.
Ich habe überhaupt keine Ahnung von Javascript.
<http://de.selfhtml.org/javascript/intro.htm@title=Dann solltest Du das ändern.>
Jetzt darf ich wegen einem Fehler, komplett Javascript lernen?
was vieleicht sogar Wochen, wenn nicht sogaar Monate dauern kann?
mfg Marco
Mahlzeit Marco,
Hm... das weiß ich leider nicht. Da die Homepage mit Joomla gemacht ist und ich nur die Inhalte mit Text oder Bildern fülle.
Dann solltest Du vielleicht in den einzelnen Dateien, aus denen Joomla so besteht, mal schauen, wo die Teile, die vom Validator als Fehler angemeckert werden, enthalten sind - und sie dann korrigieren.
Von gezielter Fehleranalyse, Fehlersuche, Debugging usw. hast Du aber schon mal was gehört, oder?
Ich habe überhaupt keine Ahnung von Javascript.
<http://de.selfhtml.org/javascript/intro.htm@title=Dann solltest Du das ändern.>
Jetzt darf ich wegen einem Fehler, komplett Javascript lernen?
Ja, darfst Du. Musst Du aber nicht. Du könntest auch denjenigen, der den fehlerhaften Code erstellt hat, um Rat fragen. Oder ihn bitten, den Fehler zu beheben. Du könntest genauso gut jemanden fragen, der sich damit auskennt. Wenn Du Glück hast, möchte er für die Dienstleistung, den Fehler zu beheben (und ggf. auch Sonstiges in Ordnung zu bringen), nur wenig Gegenleistung haben.
was vieleicht sogar Wochen, wenn nicht sogaar Monate dauern kann?
Na na na ... nun mal nicht übertreiben, oder? Sooo schwer sind die Grundlagen nicht. Fang doch einfach mal an. Es gibt auch sicherlich haufenweise Tutorials dazu im Netz: Na also ...
MfG,
EKKi
hi,
Dann solltest Du vielleicht in den einzelnen Dateien, aus denen Joomla so besteht, mal schauen, wo die Teile, die vom Validator als Fehler angemeckert werden, enthalten sind - und sie dann korrigieren.
Von gezielter Fehleranalyse, Fehlersuche, Debugging usw. hast Du aber schon mal was gehört, oder?
Ich glaube aber der Validator spinnt.
Gleich der erste Fehler ist dieser hier.
document.write('<style type="text/css">')
Er zeit mir das > ist falsch.
Warum soll das falsch sein?
Na, da muss ich wohl alleine zurecht kommen.
mfg Marco
Mahlzeit Marco,
Ich glaube aber der Validator spinnt.
Nein, tut er nicht.
Gleich der erste Fehler ist dieser hier.
document.write('<style type="text/css">')
Nein, der erste Fehler ist, dass Du Deine Dateien offenbar als UTF-8 mit Byte-Order-Mark abspeicherst. Das solltest Du sein lassen, da letzteres überflüssig ist und es den Browsern nur schwer macht. Speichere Deine Dateien also als UTF-8 ohne BOM ab.
Er zeit mir das > ist falsch.
Ist es ja auch.
Warum soll das falsch sein?
Das hatten wir gerade erst. Du behauptest im Dokumenttyp, XHTML auszuliefern. Dann tu das auch. Dazu gehört u.a., dass Du Javascript-Code entsprechend vor dem XML-Parser "versteckst".
Alternativ böte es sich an, *gar keinen* Javascript-Code direkt in der Datei zu notieren, sondern alles auszulagern - wie es eigentlich auch sinnvoll wäre.
Na, da muss ich wohl alleine zurecht kommen.
Musst Du nicht - Du kannst hier auf gezielte Fragen durchaus brauchbare Hilfe bekommen ...
MfG,
EKKi