私はjQueryを使用する関数を持っています。 JavaScriptでjQueryを動的に挿入し、その関数がその関数の戻り値を返すようにする必要があります。私はjavascript関数で動的にjQueryをロードし、別の関数を呼び出し、その関数の戻り値を返す方法はありますか?
(function(){
var jQueryLoaded = false;
var returnValue;
if (!window.jQuery) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://code.jquery.com/jquery-1.7.1.min.js';
script.onreadystatechange= function() {
if (this.readyState == 'loaded' || this.readyState == 'complete')
onJQueryLoaded();
};
script.onload = onJQueryLoaded;
document.getElementsByTagName('head')[0].appendChild(script);
}
else {
returnValue = myJQueryFunction();
if (typeof(returnValue) == 'undefined')
returnValue = true;
return returnValue;
}
function myJQueryFunction() {
// do something
}
function onJQueryLoaded() {
if (jQueryLoaded)
return;
jQueryLoaded = true;
var $ = jQuery;
returnValue = myJQueryFunction();
if (typeof(returnValue) == 'undefined')
returnValue = true;
}
while (typeof(returnValue) == 'undefined'); // wait until onJQueryLoaded returns
return returnValue;
})();
ような何かをしたいと思いますが、while
ループ中にonJQueryLoaded
呼び出されません。
戻す前にonJQueryLoaded
が呼び出されるまで、自分のベース関数を待機させる方法はありますか?
タイマはちょうど別の関数を呼び出します。 'myJQueryFunction'の戻り値を返すための元の基本関数が必要です(またはtrue)。 – cubetwo1729