Question

Je le code

window.onload = function() {            
    function foo() {
        alert("test");
    }
    setInterval("foo()",500)
}

Ce qui undefined ... Quand je l'utilise en dehors du window.onload cela fonctionne. Quelqu'un peut-il me expliquer pourquoi?

Était-ce utile?

La solution

En utilisant une commande de chaîne dans setInterval() va essayer de chercher la fonction dans la portée globale (fenêtre), mais étant donné que la fonction est définie dans une portée locale, il ne sera pas trouvé. Vous devez passer la fonction elle-même à la place setInterval().

window.onload = function() {            
    function foo() {
        alert("test");
    }
    setInterval(foo, 500);
}

Autres conseils

Essayez ceci:

function foo() {
    alert("test");
}

window.onload = function() {            
    setInterval("foo()",500)
}

Il fonctionne pour moi.

Vous pouvez définir la fonction dans l'appel à setInterval:

window.onload = function() {
    setInterval(
        function foo() {
            alert("test");
        },
        500
    );
}

Vous devez définir la fonction à la place setInterval().

Souvenez-vous également effacer l'intervalle sur window.onunload ou window.beforeonunload

const CheckFoo = () => {
    const start = new Date().getTime();

    console.log("check", start);
};
window.onload = function foo() {
    window.setInterval(CheckFoo, 500);
};

window.onunload = function foo() {
    window.clearInterval(CheckFoo);
};
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top