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.
Problem mit HTML bzw. Java Script
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
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
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
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
Beste Grüße
Carsten
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
genau aus.das Skript nur auszuführen, wenn (in JS) das document-Objekt = dem top-Objekt ist
Beste Grüße
Carsten
Habe das Problem mit Hilfe eines alten Beitrag von emergence gelöst:
Die externen Java-Scripte werden als Modul mit
eingebunden.
http://www.contenido.org/forum/viewtopi ... 4553#14553[/code]
Die externen Java-Scripte werden als Modul mit
Code: Alles auswählen
<?
if (!$edit) {
echo "dein script...";
}
?>
http://www.contenido.org/forum/viewtopi ... 4553#14553[/code]