0

この任意の js コードを実行するための唯一の要件は、特定のグローバル変数/関数 (例: setInterval) が公開されていないことです。

私の現在の戦略では、js コードを解析し、varすべてのグローバル参照に対して (囲んでいるクロージャの先頭で) 宣言を行います。

これを解決する他の明白な方法があるかどうか疑問に思っています。

また、明確にするために、この任意のコードは、のようなものでは実行されていませんeval。むしろ、クロージャ内にラップされ、ベース コードに追加されます。

4

1 に答える 1

1

オプションの 1 つは、独自の関数または変数を指定してグローバルをオーバーライドすることです。例:

window.alert = function() {
// ここにコードを記述
// オプションで、必要に応じて window.alert を呼び出します
}

非表示にしたいものの数が限られている場合、これは扱いやすいはずです。これにより、グローバルに使用できなくなります。

于 2012-12-19T01:31:47.790 に答える