Problem mit HTML bzw. Java Script

Gesperrt
Odin1978
Beiträge: 3
Registriert: Do 15. Dez 2005, 13:46
Kontaktdaten:

Problem mit HTML bzw. Java Script

Beitrag von Odin1978 » Do 15. Dez 2005, 13:52

Hallo zusammen.

Ich hoffe mir kann jemand helfen.
Und zwar versuche ich seit längerem auf der Startseite meiner HP
Schnee rieseln zu lassen. Es klappt auch das in der Vorschau der Schnee mit dem Javascript fällt, aber wenn ich auf eine andere Seite im Contenido gehe und dann wieder auf den ursprünglichen zurück gehe,
ist der Schnee auf der Seite wie eingefroren und wenn ich mir den HTML Code anschaue ist dieser nicht mehr so wie vorher.
Was mache ich da falsch?
Hoffe mir kann jemand weiterhelfen.

MyAccount
Beiträge: 383
Registriert: Do 17. Jul 2003, 10:21

Beitrag von MyAccount » Do 15. Dez 2005, 14:42

Am besten mal den Code vorher und nachher posten. Aber am allerbesten ist es auf Javascript zu verzichten. :-) Mach doch ein Hintergrund.Gif. Aber bloß nicht größer als 15kb.

Odin1978
Beiträge: 3
Registriert: Do 15. Dez 2005, 13:46
Kontaktdaten:

Beitrag von Odin1978 » Do 15. Dez 2005, 15:08

Das ist doch nix.
Der Schnee soll über die seite laufen und net nur als Gif bild.

MyAccount
Beiträge: 383
Registriert: Do 17. Jul 2003, 10:21

Beitrag von MyAccount » Do 15. Dez 2005, 15:16

über die Seite? Du meinst also in der allerobersten Ebene. :-) Dann machst Du halt schlimmstenfalls ein div über alles und legst da das background-image rein. Ansonsten kann ich mir nicht vorstellen, wie Contenido den Code einfach ändern sollte.

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Fr 16. Dez 2005, 00:48

Den Effekt kenne ich. Das Skript gibt HTML-Code aus (es definiert die "Schnee"-Objekte). Wenn man nun das erste Mal im Edit-Modus auf die Seite geht, gibt das Skript die Objekte das erste Mal aus (und es geht). Nun drücke man auf Speichern - für den Browser gibt es keinen Unterschied zwischen "realem" und "JS-generierten" HTML - beides wird gespeichert (d.h. der dynamisch erzeugte HTML-Code gleich mit).

Wird nun die Seite das zweite Mal aufgerufen, existiert der benötigte HTML-Code bereits, trotzdem erzeugt das JS den Code erneut - damit gibt es mehrere Objekte mit der gleichen ID und das Skript scheitert daran, die Elemente mit getElementByID zu ermitteln (da die IDs nicht eindeutig sind) - und damit werden die Schneeflocken nicht animiert.

Desto häufiger man speichert, desto mehr (JS-)HTML kommt in die DB.

Meine Lösung war damals, das Skript nur auszuführen, wenn (in JS) das document-Objekt = dem top-Objekt ist (anderenfalls bin ich vermutlich im Backend-Edit-Frame und darf nicht ausgeführt werden). Um den aktuellen Fehler zu korrigieren, muss manuell der zusätzliche HTML-Code entfernt werden.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

casi1969
Beiträge: 68
Registriert: Mi 4. Aug 2004, 16:30
Wohnort: Köln
Kontaktdaten:

Beitrag von casi1969 » Do 12. Apr 2007, 12:25

Hallo HerrB,

ich teste gerade das "Accordion Menu Plugin" for jQuery und habe das gleiche Problem, dass bei jedem Öffnen der Seite im Editor das Script den HTML-Code verändert.

Wie sah denn die Lösung
das Skript nur auszuführen, wenn (in JS) das document-Objekt = dem top-Objekt ist
genau aus.

Beste Grüße
Carsten

casi1969
Beiträge: 68
Registriert: Mi 4. Aug 2004, 16:30
Wohnort: Köln
Kontaktdaten:

Beitrag von casi1969 » Fr 13. Apr 2007, 14:20

Habe das Problem mit Hilfe eines alten Beitrag von emergence gelöst:

Die externen Java-Scripte werden als Modul mit

Code: Alles auswählen

<?
if (!$edit) {
echo "dein script...";
}
?>
eingebunden.

http://www.contenido.org/forum/viewtopi ... 4553#14553[/code]

Gesperrt