Выполнение Javascript изнутри textarea (пользовательская консоль JS) - PullRequest
1 голос
/ 02 февраля 2011

Меня интересует создание текстового редактора в бэкэнде CMS, который позволяет пользователям записывать Javascript в текстовую область и тестировать его во время редактирования.

Самое близкое, что я могу придумать, это что-то вроде1004 *

Но вместо

.src='http://site.com/file.js';

мне нужно будет заполнить элемент script значением textarea.У кого-нибудь есть идеи, как справиться с чем-то подобным?

Ответы [ 3 ]

2 голосов
/ 02 февраля 2011

Я сам написал один из них (не работает в IE) здесь: http://phrogz.net/tmp/simplejs.html

2 голосов
/ 02 февраля 2011

Используйте функцию eval () .

 eval(document.getElementById('wmd-input').value);

И если вы собираетесь разрешить пользователям вводить JavaScript в вашу CMS, убедитесь, что вы в курсе межсайтовых сценариев (XSS) .

0 голосов
/ 02 февраля 2011

Я думаю, вы должны сделать ajax-вызов для загрузки страницы. Я бы порекомендовал JQuery, что делает его очень простым, и на их сайте множество примеров.

Это будет выглядеть примерно так:

$.get('http://site.com/file.j', function(data) {
    $('#txta').text(data);
});

Где 'txta' - идентификатор текстовой области.

Если вы хотите выполнить скрипт в браузере, вы можете использовать функцию javascript eval () - но я бы проявил крайнюю осторожность при таком подходе, поскольку он может привести к всевозможным уязвимостям безопасности, включая атаки межсайтовых скриптов .

...