Seite 1 von 1
Auführen von Javascript in TinyMCE verhindern
Verfasst: Sa 26. Mai 2007, 11:04
von phils
Liebes Forum,
ich versuche gerade ein Kontaktformular hes Captcha beinhaltet in meine Contenido Seite einzubinden. Alles klappt soweit. Einziges Problem: Das Javascript für Captcha wird innerhalb von TinyMCE ungewollt ausgeführt da TinyMCE ja Javacript unterstützt. Jeder Aufruf der Artikels über den Editor bewirkt also ein Run des JS (u.a. document.write...) Nach jedem Speichern habe also das Script (ungewollt) ausgeführt und ein paar Zeilen mehr im Artikel / Formular.
Ist es möglich TinyMCE das ausführen von JS zu verbieten?
Gruß,
Philipp
Verfasst: Sa 26. Mai 2007, 16:15
von wosch
Bei Java-Script und TinyMCE wird immer der Tiny als der schuldige angesehen.
Ist er aber nicht (immer) bzw. nicht allein der Schuldige.
Java-Script ist eine Client-seitige Sprache, heißt: wird vom Browser ausgeführt.
Da sowohl Contenido als auch Tiny (der aus 100% Java-Script besteht) nur funktionieren wenn Java-Script zugelassen wird, kannst du es also nicht verhindern das der Browser das eingegebene Script auch ausführt und damit auch das ausgeführt Java-Script speichert.
Ist ein Teufelskreis, Java-Script ist notwendig um die Eingaben im Editor-Fenster auszulesen und an Contenido zu übergeben zum Speichern,
andererseits soll Java-Script nicht ausgefüher werden wenn es als Script im Fenster steht.
Verfasst: So 27. Mai 2007, 00:25
von HerrB
Es gibt mehrere Möglichkeiten: Entweder das JS via Modul in die Seite einbinden, Platzhalter im Text (wieder via Modul) ersetzen (dann kann man den Text wie gewohnt ändern und trotzdem bestimmen, wo etwas landet) und schließlich: Um das JS ein wenig JS legen, der dazu führt, dass das JS nur ausgeführt wird, wenn man nicht in Contenido arbeitet.
Das ist ein wenig schwerer - persönlich habe ich das so gelöst, dass einfachg gefragt wird, ob window.document = top.document (oder so ähnlich). Wenn nicht, sind wir in einem Frame, sind wir (vermutlich) in Contenido.
Natürlich bedeutet das, dass man das JS über die Einbindung in einen Frame deaktivieren könnte. Aber das kann man auch über die Browsereinstellungen und diverse Tools...
Gruß
HerrB
Verfasst: So 27. Mai 2007, 12:33
von wosch
HerrB hat geschrieben:Das ist ein wenig schwerer - persönlich habe ich das so gelöst, dass einfachg gefragt wird, ob window.document = top.document (oder so ähnlich). Wenn nicht, sind wir in einem Frame, sind wir (vermutlich) in Contenido.
Das ist eine interessante Lösung, das könnte generell viele Probleme mit dem Ausführen von Java-Script im Tiny beheben.
Könntest du in Tipps&Tricks das mal näher erläutern anhand eines Beispieles?
(Was mich ebenfalls dazu bringt in die gleiche Kerbe zu schlagen wie einige andere, eigene Kategorie: Contenido und TinyMCE)