Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2013-06-13

TinyMCE, Plone & Javascript

Столкнулся вчера с занятными (г|т)раблями — никак не получалось у меня добавить на страничку в Plone код Javascript. Ну, типа такого:
<img src="http://www.onsite.ru/ftp/vivwater/webcam.jpg" name="webcam">
<script language="JavaScript">
function go()
{
  var now = new Date();
  var stamp= parseInt(now.getTime() / 1000);  document.images.webcam.src="http://www.onsite.ru/ftp/vivwater/webcam.jpg?"+stamp;
  setTimeout("go()", 2000);
}
setTimeout("go()", 1000);
</script>

Понятное дело, сначала я проверил, не отфильтровываются ли напрочь «вредные» теги. Толковую инструкцию я нашел только одну
зато она годится для любых случаев. Хотя, как оказалось, не любых.

После серии бесплодных попыток, я выяснил, что используемый редактор (TinyMCE) оборачивает код Javascript. в тег CDATA. Получается у него вот так:
<script language="JavaScript">
// <![CDATA[
function go()
{
  var now = new Date();
  var stamp= parseInt(now.getTime() / 1000);  document.images.webcam.src="http://www.onsite.ru/ftp/vivwater/webcam.jpg?"+stamp;
  setTimeout("go()", 2000);
}
setTimeout("go()", 1000);
// ]]>
</script>
Такая обертка приводит к тому, что шаблонизатор Plone вырезает из выдачи код скрипта.
В коде отрендеренной страницы видно такое:
<script language="JavaScript">
//
</script>
Здорово, правда?

И что с этим делать — неясно. Если бы CDATA был нормальным тегом, можно было бы добавить его в список исключений. Я пробовал — не выходит.

В итоге пришлось идти в обход. В настройках своей учетной записи в Plone я выбрал в качестве редактора «нет редактора», то есть страницу сайта редактировать придется в HTML, никакого WYSIWYG, зато и «интеллекта» вредного тоже нет. Убрал я тег CDATA из кода страницы ручками и всё у меня получилось.

Главное не забыть, что редактировать эту страницу в визуальном редакторе нельзя.


original post http://vasnake.blogspot.com/2013/06/tinymce-plone-javascript.html

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) Java (22) humor (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) Klaipeda (14) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)