Bonjour,

Quelqu'un serait-il capable de me dire pourquoi l'exécution du code suivant échoue, avec l'erreur ReferenceError: hello is not defined sur Firefox 15 (pas d'erreur sous Chrome 22).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
<html>
    <body>
        <script type="text/javascript">
 
            var go = false;
 
            function sayGo() {
                go = true;
            }
 
            function main() {
 
                if (go === true) {
 
                    hello("toi");		
                    function hello(qui) {
                        alert("Salut " + qui);
                    }
                }
                else  {
                    window.setTimeout(main,500);
                }
            }
            window.setTimeout(sayGo, 1000);
            main();
        </script>
    </body>
</html>
Pour info, ce code est une simplification de celui sur lequel je rencontre mon problème.

Dans la version complète, j'effectue un préchargement de données de façon asynchrone (fichier text et BDD) et je souhaite que la fonction main ne s'exécute qu'une fois ces données chargées, d'où le test sur "go" en début de fonction main.

N'ayant pas une grande expérience en javascript, je ne sais pas si c'est la meilleur façon de faire pour gérer un préchargement de données. Je suis ouvert aux suggestions.

Merci d'avance.