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, время: 06:40. |