Seite 1 von 1

Javascript ausführen oder einbinden

Verfasst: Mi 13. Apr 2005, 10:54
von Gast
Hallo,
es sollte doch möglich sein, innerhalb eines erstellten Layouts einen Javascrpt-Code auszuführen.

Ich habe versucht Code in ein Modul mit dem Inhaltstyp CMS_HTML[x] einzufügen. Das funktionierte solange ich nur die HTML-Ansicht des RichTextEditors benutzte. Bei erneuten Aufrufen des RTE startet dieser jedoch im Design-Modus und der Javascriptcode vermischt sich mit dem contenido-Code - also Chaos.
Ich habe auch vergeblich versucht einen externen Code über <script src="quadrat.js" type="text/javascript"> einzubinden.

Module mit dem Inhaltstyp CMS_TEXT[x] bringen auch nicht das gewünschte Ergebnis.

Wer hat eine Idee?

Verfasst: Mi 13. Apr 2005, 11:10
von emergence
hmm...
ich würd empfehlen das du im forum mal nach snippets suchst...
den code direkt in ein CMS_HTML element zu schreiben würd ich nicht empfehlen...

Verfasst: Mi 13. Apr 2005, 16:00
von Gast
hmm... das mit dem Snippets-Modul aus http://www.contenido.de/forum/viewtopic.php?t=3421 scheint ja zu klappen - ist nur leider keine anständige Anwendungsbeschreibung dabei.

Vielleicht find ich's ja noch heraus per try&error ...

Verfasst: Mi 13. Apr 2005, 17:11
von emergence
Anonymous hat geschrieben:ist nur leider keine anständige Anwendungsbeschreibung dabei
ich dachte das sei nicht notwendig...
kannst ja eine ergänzen wenn du willst...

Bedienungsanleitung

Verfasst: Mi 13. Apr 2005, 18:43
von Tom~*
kannst ja eine ergänzen wenn du willst...
Also gut - ich versuch's mal:

A) Style
1. Ein neues Modul erstellen, mit dem Code aus [http://www.contenido.de/forum/viewtopic.php?t=3421],
2. Ins Template einen neuen Container setzten, z.B. CMS_CONTAINER[1] im Head-Bereich,
3. Im Template für den Container1 das neue Modul selektieren.

B) Content
1. Einem Artikel ein Template zuweisen und dieses konfigurieren,
2. Bei "Modul in Container 1:" einen Namen für das Script eintragen und auf "New" klicken.
3. In das sich öffnende Textfeld den Script-Code eingetragen und auf "update" klicken. Ist eine grüne Grafik zu sehen, wurde das Modul erfolgreich kompiliert. Der Code kann nun über das Frontend ausgeführt werden.
4. Der Script-Code wurde gespeichert und kann, ebenso wie jeder andere gespeicherte Code, über die Auswahlliste "Snippet:" angewählt werden.
5. Änderungen im Script-Code müssen mit einem Klick auf "Update" bestätigt werden.
6. Ein Klick auf "Copy" kopiert den aktuellen Code in die Auswahlliste.
7. Ein Klick auf "Delete" löscht den aktuellen Code aus der Auswahlliste.

Bild Coool!

Verfasst: Mi 13. Apr 2005, 20:13
von Halchteranerin
schoen das du die Beschreibung gemacht hast, aber es wuerde mehr helfen, wenn du sie beim anderen Thread posten wuerdest, denn hier wird sie niemand suchen. DORT wuerde sie aber bestimmt auch anderen Leuten helfen. :)

Verfasst: Do 14. Apr 2005, 09:32
von emergence
danke für die beschreibung
aber christa hat schon recht müsste man beim orginal thread ergänzen... ;-)

Verfasst: Do 14. Apr 2005, 19:11
von HerrB
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).

Mögliche Lösung: Die Funktion solange man im Backend ist, nicht ausführen, z.B.

Code: Alles auswählen

<SCRIPT language=JavaScript>if (top.frames.length == 0) Snow();</SCRIPT>
- 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>
Link:

Code: Alles auswählen

<a href="javascript:MachWas();">Hallo</a>
oder

Code: Alles auswählen

<a href="#" onClick="MachWas()">Hallo</a>
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?...'); )

Ich hoffe, es hilft.

Gruß
HerrB