Javascript ausführen oder einbinden
Javascript ausführen oder einbinden
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?
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?
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...
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...
*** make your own tools (wishlist :: thx)
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 ...
Vielleicht find ich's ja noch heraus per try&error ...
ich dachte das sei nicht notwendig...Anonymous hat geschrieben:ist nur leider keine anständige Anwendungsbeschreibung dabei
kannst ja eine ergänzen wenn du willst...
*** make your own tools (wishlist :: thx)
Bedienungsanleitung
Also gut - ich versuch's mal:kannst ja eine ergänzen wenn du willst...
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.

-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
danke für die beschreibung
aber christa hat schon recht müsste man beim orginal thread ergänzen...
aber christa hat schon recht müsste man beim orginal thread ergänzen...

*** make your own tools (wishlist :: thx)
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.
- 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?...'); )
Ich hoffe, es hilft.
Gruß
HerrB
- 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>
- 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>
Ich hoffe, es hilft.
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