似乎官方示例使用了一个caja.js文件,该文件只是包装了iframe
一个从托管 caja 编译服务的服务器加载 URL,而后者又从某个 URL 获取输入。相关的 API 可在此处获得。
但是,我真正想要的是安全地(并且反复地)运行用户提供的一段 Javascript,如下所示:
for (var i = 0; i < N; ++i) {
var x = getUserResult(currentState);
updateState(currentState, x);
}
有没有办法直接做到这一点?这里的代码有编译器。为什么我不能只使用它来编译代码然后在模拟上下文中运行它?是因为在浏览器中获取安全上下文的唯一方法是iframe
? 而且,如果是这样,有什么方法可以使用 aniframe
直接运行给定的源代码,而不必从外部 URL 获取它?