我想执行一段代码,只有在文档已经加载时才会运行(而不是在加载文档后执行RIGHT的代码)。 寻找不是JQuery的东西。
问题背后的前提:我有一个在页面完全加载之前运行的函数。但是,该函数调用另一个调度事件的函数。我只希望在窗口已经加载时调度该事件。如果没有,也许只是将它存储在一个数组中,并在页面加载后发送它
答案 0 :(得分:1)
你的问题的细微差别似乎是你没有抓住onload
事件,而只是知道它是否已经发生。
我会做jQuery所做的事情,并在true
事件中设置一个标记为onload
,然后在if
语句中引用该标记。
对于可重用的解决方案,您可以将此行为封装在接受回调的函数中:
var whenLoaded = (function() {
var isLoaded = false,
callbacks = [];
window.onload = function() {
isLoaded = true;
for (var i = 0; i < callbacks.length; i++)
callbacks[i]();
};
return function whenLoaded(callback) {
if (isLoaded) {
callback();
} else {
callbacks.push(callback);
}
};
})();
...
whenLoaded(function() {
// eat a cookie
});