gpt4 book ai didi

javascript - 如何延迟 document.ready 直到设置变量?

转载 作者:可可西里 更新时间:2023-11-01 01:47:50 25 4
gpt4 key购买 nike

我正在 IFRAME 中进行 QUnit 测试,并且有一个递归 JavaScript 函数,它在启动 QUnit 之前将所有脚本从父页面加载到 IFRAME 中。这很好用。我的问题是我们的一些脚本使用 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();
}

实际代码类似,但涉及一个 jquery 选择器,它使用 JavaScript 标记“src”属性填充数组“scripts[]”。

谢谢!

最佳答案

如果您使用的是 jQuery 1.6+,那么您可以使用 holdReady .只需在脚本顶部设置 $.holdReady(true),然后在 QUnitStart 的开头设置 $.holdReady(false)

关于javascript - 如何延迟 document.ready 直到设置变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6023036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com