Javascript ausführen oder einbinden

Gesperrt
Gast

Javascript ausführen oder einbinden

Beitrag 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?
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag 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...
*** make your own tools (wishlist :: thx)
Gast

Beitrag 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 ...
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag 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...
*** make your own tools (wishlist :: thx)
Tom~*
Beiträge: 9
Registriert: Di 1. Feb 2005, 17:44
Kontaktdaten:

Bedienungsanleitung

Beitrag 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!
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag 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. :)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

danke für die beschreibung
aber christa hat schon recht müsste man beim orginal thread ergänzen... ;-)
*** make your own tools (wishlist :: thx)
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag 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
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
Gesperrt