私は、他のプログラマーが JavaScript を含むコンテンツを作成するために使用するコンテンツ管理システム (CMS) の管理を支援しています。歴史的には、コンテンツが含まれるように iFrame にコンテンツを配置していました。現在は単一ページのクライアント側アプリケーションであり、JavaScript が同じウィンドウに挿入されています。
既存のコンテンツ ライブラリは十分に開発されていなかったため、コンテンツのいくつかのページが読み込まれたり表示されたりした後に、ウィンドウ オブジェクトが混乱したり、メモリ リークが発生したりする可能性を管理しようとしています。
JavaScript を自己実行関数または「未定義」に設定して削除する同様のものでラップすることを検討していました (たとえば)。課題は、最初にラッパーを挿入する必要があることです。そのため、script タグに単純な ajax 呼び出しを使用することはできません。それは、JavaScript にラッパーを文字列として追加してから eval を使用するしかないということですか? 私はその方法を使いたくありませんが、ここでは適切かもしれません。
たとえば、スクリプト .js ファイルに次のコードが含まれているとします。
var global = true;
最終的に次のようになる場合:
(function() {
var global = true;
})();
それはもはやグローバルではありません。