Je développe JS qui est utilisé dans un framework web, et fréquemment mélangé avec le code jQuery d'autres développeurs (souvent sujet aux erreurs). Malheureusement, les erreurs dans leurs blocs jQuery (document) .ready empêchent l'exécution du mien. Prenez l'exemple simple suivant:Gestion des erreurs dans jQuery (document) .ready
<script type="text/javascript">
jQuery(document).ready(function() {
nosuchobject.fakemethod(); //intentionally cause major error
});
</script>
<script type="text/javascript">
jQuery(document).ready(function() {
alert("Hello!"); //never executed
});
</script>
Le deuxième bloc prêt ne doit-il pas s'exécuter indépendamment de ce qui s'est passé dans le précédent? Existe-t-il un moyen "sûr" d'exécuter jQuery (document) .ready qui s'exécutera même dans le cas d'erreurs précédentes?
EDIT: Je n'ai aucun contrôle/visibilité sur les blocs sujettes aux erreurs car ils sont écrits par d'autres auteurs et mélangés arbitrairement.
Cela semble fonctionner plutôt bien, que ce soit avant ou après les scripts potentiellement buggés. Je pense que ce que je vais faire est de déplacer le contenu de mon bloc ready (alerte ("Bonjour!") Dans l'échantillon) juste après le bloc catch. De cette façon, mon bloc prêt peut "s'ajouter" à la fin des blocs prêts précédents. – 3hough
Excellente solution. Je n'ai jamais pensé à ça. –
Je ne suis pas sûr de ce que je pensais, mais cela fonctionnera peu importe où il se passe, tant qu'il est dans la balise
et non dans un événement onload, puisque nous détournons la méthode ready avant qu'elle ne soit invoquée sur dom charge. – jvenema