11525 sujets
JavaScript, DOM et API Web HTML5
Bonjour.
On peut faire exécuter plusieurs lignes de code en les séparant par des points-virgules.
On peut aussi (si besoin est) sophistiquer le fragment de code...
On peut faire exécuter plusieurs lignes de code en les séparant par des points-virgules.
<body onLoad="js_function_1(); js_function_2(); js_function_3()">
On peut aussi (si besoin est) sophistiquer le fragment de code...
<body onload=" s= 'bienvenue ';
if (navigator.appName.indexOf('Explorer') > -1)
{
s = 'hou! le vilain! ';
alert(s + navigator.appName);
}
else
{
alert(s + navigator.appName);
}
alert('fin de traitement')">
Salut,
je sais bien que Koala64 a émis des réserve sur cette technique, mais pour ma part ce que Jep a fait avec evenements multiples au chargement d'une page me semble vraiment très bien.
1. une fois le dispositif installé tout est automatique.
2. celà permet de mettre les différents scripts que l'on peut avoir fait dans des fichiers séparés. Ce qui est d'une grande aide pour la clarté de consultation de ces scripts.
je sais bien que Koala64 a émis des réserve sur cette technique, mais pour ma part ce que Jep a fait avec evenements multiples au chargement d'une page me semble vraiment très bien.
1. une fois le dispositif installé tout est automatique.
2. celà permet de mettre les différents scripts que l'on peut avoir fait dans des fichiers séparés. Ce qui est d'une grande aide pour la clarté de consultation de ces scripts.
J'ai trouvé ces 2 articles qui peuvent compléter le chargement correct du javascript au démarrage :
DOM javascript onload
Solution javascript
DOM javascript onload
Solution javascript
Salut,
Maintenant, par habitude, je préfère tout de même me servir de la fonction décrite dans ce topic (fonction addEvent), qui m'offre les mêmes possibilités sans avoir ces quelques désavantages...
En somme, je dirais que ce soit le lien "DOM javascript onload" proposé par Jean-Paul Creative-E ou le script de Jep, on ne fait que régler partiellement le problème... Pour soi, oui, ça convient mais ça ne me semble pas judicieux lorsqu'on diffuse le script.
Le lien "Solution javascript", quant à lui, ne semble pas encore au point ; il n'est pas compatible pour tous les navigateurs, y compris les plus utilisés.
Modifié par koala64 (08 Nov 2006 - 14:15)
clb56 a écrit :Les réserves que j'ai pu émettre concernent surtout l'utilisation du window.onload vu que si on déclare deux fois ce gestionnaire d'événement, on écrase le premier, ce qui n'est pas souhaitable en cas de multiplication du script. Le code de Jep n'est pas néfaste en soi lorsqu'on est le seul à gérer sa bibliothèque mais il faut juste avoir conscience qu'en cas de diffusion du script, ce n'est pas la meilleure méthode. Par ailleurs, je disais surtout que par précaution, je ferais bien un tableau des données acceptables vu qu'il se sert de la méthode eval. Ca reste à confirmer, je n'ai pas fait de test pour mettre le script en défaut.
Salut,
je sais bien que Koala64 a émis des réserve sur cette technique, mais pour ma part ce que Jep a fait avec evenements multiples au chargement d'une page me semble vraiment très bien.
Maintenant, par habitude, je préfère tout de même me servir de la fonction décrite dans ce topic (fonction addEvent), qui m'offre les mêmes possibilités sans avoir ces quelques désavantages...
En somme, je dirais que ce soit le lien "DOM javascript onload" proposé par Jean-Paul Creative-E ou le script de Jep, on ne fait que régler partiellement le problème... Pour soi, oui, ça convient mais ça ne me semble pas judicieux lorsqu'on diffuse le script.
Le lien "Solution javascript", quant à lui, ne semble pas encore au point ; il n'est pas compatible pour tous les navigateurs, y compris les plus utilisés.
Modifié par koala64 (08 Nov 2006 - 14:15)
Bonsoir,
Ce que je n'aime pas dans le script de JEP :
Je préfèrerais nettement avoir une syntaxe type addToStart(fonction, arg1, arg2, arg3) que addToStart("function(arg1, arg2, arg3);"); parce que c'est plus facile.
Firefox permet bien cette syntaxe avec le setTimeout, c'est que ça doit être possible...
En effet, utiliser des chaînes rend impossible ou complique le passage de paramètres tels que des tableaux multidimensionnels, objets, etc.
IL faudrait pouvoir redéfinir le setter de window.onload, mais le problème c'est qu'après c'est du javascript spécifique à firefox qui ne sera au grand jamais compatible IE.
Ce que je n'aime pas dans le script de JEP :
Je préfèrerais nettement avoir une syntaxe type addToStart(fonction, arg1, arg2, arg3) que addToStart("function(arg1, arg2, arg3);"); parce que c'est plus facile.
Firefox permet bien cette syntaxe avec le setTimeout, c'est que ça doit être possible...
En effet, utiliser des chaînes rend impossible ou complique le passage de paramètres tels que des tableaux multidimensionnels, objets, etc.
IL faudrait pouvoir redéfinir le setter de window.onload, mais le problème c'est qu'après c'est du javascript spécifique à firefox qui ne sera au grand jamais compatible IE.
QuentinC a écrit :
Je préfèrerais nettement avoir une syntaxe type addToStart(fonction, arg1, arg2, arg3) que addToStart("function(arg1, arg2, arg3);"); parce que c'est plus facile.
Firefox permet bien cette syntaxe avec le setTimeout, c'est que ça doit être possible...
En effet, utiliser des chaînes rend impossible ou complique le passage de paramètres tels que des tableaux multidimensionnels, objets, etc.
IL faudrait pouvoir redéfinir le setter de window.onload, mais le problème c'est qu'après c'est du javascript spécifique à firefox qui ne sera au grand jamais compatible IE.
Bon ben là c'est très simple j'ai rien compris
Pitié pour les boulets Please
Jean-Paul Creative-E a écrit :
J'ai trouvé ces 2 articles qui peuvent compléter le chargement correct du javascript au démarrage :
DOM javascript onload
Solution javascript
Bonjour,
Ces liens ne répondent pas à ta premiére question, mais à un problème de l'évènement "load" sur l'objet window :
a écrit :
window.onload ou body.onload. Problème : ces événements ne seront déclenchés que lorsque tous les éléments de la page, y compris applets et images, seront chargés
- Dans le premier cas, est testé le chargement d'une petite image avant de lancer la ou les fonctions d'initialisation .
- Dans le second, est détecté la fin du chargement du document (fichier html) pour lancer nos fonctions avant celui des images et objets restants.( reste à savoir si c'est valide) test ici
La solution de Koala64 permet l'ajout de plusieurs fonctions de façon plus souple (je n'ai pas dit plus simple) mais ne résoud pas cette problématique
Modifié par chmel (09 Nov 2006 - 00:23)
Eldebaran a écrit :
Valide ? Qu'est-ce que tu veux dire par là ?
La page test de Dean Edwards donne 10 erreurs au validateur
Concernant notre sujet, on peut initialiser sans "load" :
- En écrivant le script dans le body, après les éléments auquels le script se rattache. C'est valide mais on l'évite souvent pour une question de convention, je crois.
- Au premier mouvement de la souris ou du clavier comme ici
chmel a écrit :Je ne vois pas le rapport entre le fait que sa page de test soit invalide et que sa méthode le soit...
La page test de Dean Edwards donne 10 erreurs au validateur
Si tu avais lu ce qu'il propose, tu saurais que la partie HTML se limite à une inclusion de script tout à fait banale.
chmel a écrit :C'est invalide en XHTML 1.1.
Concernant notre sujet, on peut initialiser sans "load" :
- En écrivant le script dans le body, après les éléments auquels le script se rattache. C'est valide mais on l'évite souvent pour une question de convention, je crois.
chmel a écrit :Je préfère nettement une solution comme celle de Dean Edwards, qui me parait plus propre...
- Au premier mouvement de la souris ou du clavier comme ici