私は IFRAME で QUnit テストを行っており、QUnit を開始する前に、すべてのスクリプトを親ページから IFRAME にロードする再帰的な JavaScript 関数があります。これはうまくいきます。私の問題は、一部のスクリプトが document.ready を使用して作業を開始することです。
次のようなもの:
$(document).ready(function () {
// blah
});
彼らの仕事をするために。テストを説明するためだけに運用コードを変更したくないし、すべてのスクリプトが読み込まれるまで IFRAME ドキュメントが「準備完了」であるとこれらの運用スクリプトに認識させたくありません。
「document.ready」自体を遅らせるにはどうすればよいですか?
これが私の疑似コードで、作業の例を示します。
scripts[0] = "/foo/bar.js";
scripts[1] = "/blah/blah.js";
function RecursiveScriptStart(){
// I want to set document.ready = false right here!
if(scripts.length == 0) {
QUnitStart();
return;
}
RecursiveScriptLoader(0, scripts);
}
function RecursiveScriptLoader(currentScriptID, scripts) {
$.getScript(scripts[currentScriptID], function () {
if (currentScriptID == (scripts.length - 1)) {
QUnitStart();
}
else {
RecursiveScriptLoader(currentScriptID + 1, scripts);
}
});
}
function QUnitStart() {
// I want to set document.ready = true right here!
QUnit.stop();
QUnit.start();
}
scripts[]
実際のコードは似ていますが、配列 " " に JavaScript タグ "src" プロパティを設定する jquery セレクターが含まれます。
ありがとう!