Hi.
Ich habe ein Layout mit einem Menü- und einem HTML-Container erstellt. Im HTML-Container habe ich unter anderen anklickbare Bilder integriert, die per Javascript ein externes Window öffnen, welches eine vergrößerte Version des jeweiligen Bildes anzeigt. LEIDER geht das nicht.
Ist es definitiv so, das im Code des HTML-Containers kein Javascript funktioniert?
Regards
Steffen
Kein Javascript in HTML-Container?
NA ich meine den CMS-Container, den Platzhalter für CMS-Inhalte im Layout.timo hat geschrieben:was ist ein HTML-Container?
aber unabhängig davon solltest du dir einfach mal ansehen, was im Frontend herauskommt...
z.B.:
CMS_CONTAINER[1] - Navigation
CMS_CONTAINER[2] - Text
Die Seite (HTML+JS) funktioniert extern im IE und Netscape tadellos. Nur wenn ich den Code in den Container per CMS-HTML/Design-Editor kopiere.funktioniert der Javascript-Teil dort nicht.
Gruß
Steffen
... und wenn man mal annimmt, dass ein "HTML-Container" die Verwendung von CMS_HTML[xy], d.h. einem HTML-Text, lautet die Antwort: eindeutig jein.
JavaScript im HTML-Text geht, jedoch muessen folgende Besonderheiten beachtet werden:
- Auf jeden Fall auf einer Testseite vorab testen. Geht etwas schief, kann der Artikel bzw. das Feld u.U. nicht mehr editiert werden (Link zu Online-Editor [SPAW] erscheint bzw. funktioniert nicht oder SPAW an sich funktioniert mit diesem Text nicht mehr). Dann hilft nur, den Artikel zu löschen.
- Keine JavaScript-Kommentare (<!-- bzw. //-->) verwenden (sonst treten genau diese Fehler auf).
- Keine JavaScript-Befehle verwenden, die HTML ausgeben. Jeder Aufruf im Online-Editor (SPAW) fuehrt dazu, dass die Zeilen ausgegeben und beim Speichern erneut gespeichert werden. D.h. der Code wird immer länger und länger (besonders schön, wenn Objekte erzeugt werden, die per ID referenziert werden: Nun gibt es sie mehrfach und der bisher wunderbare Code funktioniert nicht mehr).
- JavaScript kann nicht am Anfang des HTML-Codes stehen. Beim Speichern wird er gelöscht. Er bleibt erhalten, wenn das JavaScript in eine Tabellen-Zelle oder Z.B. in ein Formular eingebettet wird. Nicht ueber die entstehende Formatierung wundern...
- Beim Speichern gehen Anfuehrungszeichen (") i.A. verloren. D.h. dass bei der Verwendung von JavaScript-Funktionen u.U. die Parameter nach dem Speichern im Editor nicht mehr richtig uebergeben werden.
Tipp:
JS-Code in eine separate Datei auslagern, z.B. ueber Style -> Skripteditor (oder via Datei-Upload, das können dann auch Redakteure), aus der Seite auf die Datei referenzieren und Funktion im Link anwenden. Oder die refenzierte JS-Datei fest ins Layout integrieren.
JS-Referenz auf Datei (z.B. vor </HEAD>, hier via Style -> Skripteditor):
Link:
oder
Die erste Variante kann man auch wunderbar mit dem Online-Editor verwenden, da man ggf. zunächst den internen Link auswählen und dann unten die notwendigen Angaben ergänzen kann (Link: front_content.php?... -> Ergänzen: JavaScript:(MachWas(' und ');" -> ergibt: Javascript:MachWas('front_content.php?...'); )
... und wenn ein HTML-Container was anderes ist: Keine Ahnung.
Gruß
HerrB
P.S.: Werde das wohl mal in der FAQ ergänzen, wenn es nicht sogar schon enthalten ist...muss ja auch mal ran...
JavaScript im HTML-Text geht, jedoch muessen folgende Besonderheiten beachtet werden:
- Auf jeden Fall auf einer Testseite vorab testen. Geht etwas schief, kann der Artikel bzw. das Feld u.U. nicht mehr editiert werden (Link zu Online-Editor [SPAW] erscheint bzw. funktioniert nicht oder SPAW an sich funktioniert mit diesem Text nicht mehr). Dann hilft nur, den Artikel zu löschen.
- Keine JavaScript-Kommentare (<!-- bzw. //-->) verwenden (sonst treten genau diese Fehler auf).
- Keine JavaScript-Befehle verwenden, die HTML ausgeben. Jeder Aufruf im Online-Editor (SPAW) fuehrt dazu, dass die Zeilen ausgegeben und beim Speichern erneut gespeichert werden. D.h. der Code wird immer länger und länger (besonders schön, wenn Objekte erzeugt werden, die per ID referenziert werden: Nun gibt es sie mehrfach und der bisher wunderbare Code funktioniert nicht mehr).
- JavaScript kann nicht am Anfang des HTML-Codes stehen. Beim Speichern wird er gelöscht. Er bleibt erhalten, wenn das JavaScript in eine Tabellen-Zelle oder Z.B. in ein Formular eingebettet wird. Nicht ueber die entstehende Formatierung wundern...
- Beim Speichern gehen Anfuehrungszeichen (") i.A. verloren. D.h. dass bei der Verwendung von JavaScript-Funktionen u.U. die Parameter nach dem Speichern im Editor nicht mehr richtig uebergeben werden.
Tipp:
JS-Code in eine separate Datei auslagern, z.B. ueber Style -> Skripteditor (oder via Datei-Upload, das können dann auch Redakteure), aus der Seite auf die Datei referenzieren und Funktion im Link anwenden. Oder die refenzierte JS-Datei fest ins Layout integrieren.
JS-Referenz auf Datei (z.B. vor </HEAD>, hier via Style -> Skripteditor):
Code: Alles auswählen
<script language="JavaScript" SRC="js/irgendwas.js"></script>
Code: Alles auswählen
<a href="javascript:MachWas();">Hallo</a>
Code: Alles auswählen
<a href="#" onClick="MachWas()">Hallo</a>
... und wenn ein HTML-Container was anderes ist: Keine Ahnung.

Gruß
HerrB
P.S.: Werde das wohl mal in der FAQ ergänzen, wenn es nicht sogar schon enthalten ist...muss ja auch mal ran...
Zuletzt geändert von HerrB am Di 5. Okt 2004, 21:34, insgesamt 1-mal geändert.