公式の例では、 をラップするだけのcaja.jsファイルを使用iframe
して、caja コンパイル サービスをホストしているサーバーから URL をロードし、そのサーバーが何らかの URL から入力を取得しているようです。それに関連する API は、こちらから入手できます。
ただし、私が本当に望んでいるのは、次のように、ユーザーが提供する Javascript を安全に (そして繰り返し) 実行することです。
for (var i = 0; i < N; ++i) {
var x = getUserResult(currentState);
updateState(currentState, x);
}
これを直接行う方法はありますか?ここのコードにはコンパイラがあります。それを使用してコードをコンパイルし、エミュレートされたコンテキスト内で実行できないのはなぜですか? ブラウザで安全なコンテキストを取得する唯一の方法はiframe
? もしそうなら、 を使用しiframe
て、外部 URL から取得することなく、特定のソース コードを直接実行する方法はありますか?