/ / Akciu vykonajte, iba ak je načítané okno - javascript, okno

Ak je načítané okno, vykonajte iba akciu - javascript, okno

Chcem spustiť časť kódu, ktorá sa spustí iba v prípade, že už bol dokument načítaný (nie niečo, čo po načítaní spustí PRAVÉ). Hľadáte niečo, čo nie je JQuery.

Základná otázka: Mám funkciu, ktorá sa spustí pred úplným načítaním stránky. Táto funkcia však volá ďalšiu funkciu, ktorá odošle udalosť. Chcem, aby sa táto udalosť odoslala, iba ak je okno už načítané. Ak nie, možno ho uložte do poľa a po načítaní stránky ho odošlite

odpovede:

1 pre odpoveď č. 1

Zdá sa, že nuanciou vašej otázky je, že nemáte problémy so zachytením onload udalosť, ale skôr len vedieť, či sa to ešte stalo.

Urobil by som, čo jQuery robí, a nastavil vlajku ako true vnútri a onload a potom v udalosti if vyhlásenie, na ktoré môžete odkazovať.

V prípade opakovane použiteľného riešenia by ste toto správanie mohli zapuzdriť do funkcie, ktorá akceptuje spätné volania:

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
});