Похоже, что официальные примеры используют caja.js, который просто оборачивает iframe
для загрузки URL-адреса с сервера, на котором размещена служба компиляции caja, которая, в свою очередь, получает данные от некоторых URL. Соответствующий API для этого доступен здесь.
Однако на самом деле я хочу просто безопасно (и неоднократно) запускать предоставленный пользователем фрагмент Javascript, например:
for (var i = 0; i < N; ++i) {
var x = getUserResult(currentState);
updateState(currentState, x);
}
Есть ли способ сделать это напрямую? Код здесь содержит компилятор. Почему я не могу просто использовать это для компиляции кода, а затем запускать его в эмулируемом контексте? Это потому, что единственный способ получить безопасный контекст в браузере — это iframe
? И если да, то можно ли каким-либо образом использовать iframe
для прямого запуска данного исходного кода без необходимости его извлечения из внешнего URL-адреса?