Hi,
I’m following peter.michaux.ca - The window.onload Problem (Still) with this code
<html>
<head>
<script type="application/javascript">
var stack = [],
interval,
loaded; // has window.onload fired?
function doPoll() {
var notFound = [];
alert(stack.length);
for (var i=0; i<stack.length; i++) {
if (document.getElementById(stack[i].id)) {
stack[i].callback();
} else {
notFound.push(stack[i]);
}
}
stack = notFound;
if (notFound.length < 1 || loaded) {
stopPolling();
}
}
function startPolling() {
if (interval) {return;}
interval = setInterval(doPoll, 10);
}
function stopPolling() {
if (!interval) {return;}
clearInterval(interval);
interval = null;
}
function onAvailable(id, callback) {
stack.push({id:id, callback:callback});
startPolling();
}
window.onload = function() {
loaded = true;
doPoll();
};
onAvailable('google', function(){
document.getElementById('google').onclick = function() {alert(this.id);};
});
onAvailable('yahoo', function(){
document.getElementById('yahoo').onclick = function() {alert(this.id);};
});
</script>
</head>
<body>
<h1>Search Engines</h1>
<div><ul id="engines">
<li id="google">Google</li>
<li id="yahoo">Yahoo!</li>
</ul></div>
</body>
</html>
I’m waiting to see alert(stack.length)
trigger three times
once on window.onload
twice setInterval(doPoll, 10);
but I see it once why ?
Can you explain me, please ?
Thanks