Javascript ブロックを抽出してマージ、縮小、および非同期で実行する PHP フレームワークを作成しています。
だから私はJavascriptコードの実行を遅らせるのが好きです.
MyLib.then(function(){
//orignial code from the templates....
}
ラップされたコードがグローバル変数を作成する必要がない限り、これは正常に機能します (私はラップされたコードの作成者ではないため、そのコードを修正したくありません) 代わりに、そのコードをグローバル実行コンテキストで実行したいと考えています。
例えば:
//excample code not within my controle
var global="Hello World";
次のようになります。
MyLib.then(function(){
//excample code not within my controle
var global="Hello World";
}
現在の解決策は、JavaScriptを文字列に入れてから
MyLib.then(function(){
$.globalEval("var global=\"Hello World\"";");
}
または私のライブラリ内のglobalEval呼び出しで
MyLib.then("var global=\"Hello World\"";")
しかし、フレームワークのユーザーにとってデバッグが容易な、より読みやすいバージョンに固執したいと思います。
MyLib.then(function(){
var global="Hello World";
}
callback.call(window) などを使用してライブラリ内の実行コンテキストを変更することは可能ですか?