ckeditor, исполняемый жс
Есть один движок, в качестве редактора используется ckeditor 4 не понятной подверсии (переписали, и удалили информацию о версии). Поставил для него плагин codesnippet, он свою очередь потребовал плагины widget и lineutils. Их поставил, там дальше ругается:
Код:
Uncaught TypeError: CKEDITOR.style.addCustomHandler is not a function Дальше хочу сам доделать, как сделать, допустим в этот пре добавлю уникальный id и создаю кнопку <input type="button" class="run-button" value="Запустить!"> function runjs() { var jsss = this.innerUTML(); } Вопрос такой, как заставить исполнится содержимое jsss интерпретатором, как в этом форуме? |
<script> var start = function () { var iframe = document.createElement('iframe'); document.body.appendChild(iframe); iframe.contentDocument.write('<scr' + 'ipt>alert("start!")</scr' + 'ipt>'); }; </script> <button onclick='start();'>start</button> |
хитро. Спасибо. Через время только доперло, сначала прочитал scr как src, думал что за ipt :)
|
ild,
Есть и другие варианты. Например eval, но через iframe наиболее безопасно и можно запускать примеры с версткой. Вроде. Вообще подобным не занимался, может кто предложит более безопасный способ. Запускать чужие скрипты на своем домене - всегда риск. |
так то пока попадает в базу, проходить санетизацию. Хотя хз
|
А есть другие идеи без ифрейма? Ведь, допустим в коде будет вывод только console.log(), там же ифрейм не нужен фактически
|
вот думаю, если внутри <pre> обворачивать невидимым
function runjsID(){ <pre> исполняемый код </pre> } тогда функцию можно заставить вызвать, только опять, все это должно быть внутри <script> что тоже не вариант, исходный код будет не видно |
ild,
Ну например так можно: eval('alert(2)'); |
Часовой пояс GMT +3, время: 14:08. |