gpt4 book ai didi

javascript - 使用 "JavaScript: The Definite Guide"中的 onLoad 函数有什么意义?

转载 作者:行者123 更新时间:2023-11-28 00:08:19 28 4
gpt4 key购买 nike

下面的代码片段来自《JavaScript:明确指南》一书。

我对此有一些疑问。从我的 Angular 来看,我预计不会出现任何必须使用 onLoad 函数的情况。

我认为这段代码必须用作全局 JavaScript,而不是作为事件处理程序的一部分。如果在按钮的事件处理程序中调用它,则窗口上的加载事件必须已经被触发。结果,注册的函数将永远不会被调用。

但是,如果将其用作全局 javascript,则调用 onLoad 函数时,onLoad.loaded 始终为 false。

为什么不直接在窗口上注册 load 事件,而不是检查 onLoad.loaded 是 true 还是 false?

// Register the function f to run when the document finishes loading.
// If the document has already loaded, run it asynchronously ASAP.
function onLoad(f) {
if (onLoad.loaded) // If document is already loaded
window.setTimeout(f, 0); // Queue f to be run as soon as possible
else if (window.addEventListener) // Standard event registration method
window.addEventListener("load", f, false);
else if (window.attachEvent) // IE8 and earlier use this instead
window.attachEvent("onload", f);
}

// Start by setting a flag that indicates that the document is not loaded yet.
onLoad.loaded = false;

// And register a function to set the flag when the document does load.
onLoad(function() {
onLoad.loaded = true;
});

最佳答案

我认为您误解了使用场景。

你是对的,上面的代码片段应该在启动时、网页完成加载之前执行,以便准确分配 onLoad.loaded

但是,脚本定义的 onLoad 函数可以在以后的任何地方调用,甚至可以从按钮事件处理程序等调用。

关于javascript - 使用 "JavaScript: The Definite Guide"中的 onLoad 函数有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31142209/

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