Le code JavaScript ne s'exécute pas sur JSFiddle.net
Vous avez rencontré un problème où votre code JavaScript fonctionne de manière transparente sur un site en direct mais échoue à exécuter sur JSFiddle.net. Cela est probablement dû à un problème de portée.
La classe BetterSelect et ses méthodes sont définies dans la fonction window.onload. Cela signifie qu'ils ne sont accessibles que dans le cadre de cette fonction et ne peuvent pas être référencés globalement comme vous l'avez fait dans le balisage HTML.
Pour résoudre ce problème, vous disposez de plusieurs options :
Option A : Convertir les fonctions en variables globales
window.BetterSelect = function(oSelList) {...}; window.fillList = function() {...}; window.findIt = function() {...};
Option B : Implémenter du JavaScript discret
Séparez votre HTML de JavaScript en attachant des gestionnaires d'événements au DOM éléments dynamiquement à partir du code JS. Cela évitera d'avoir besoin de références directes aux fonctions dans le HTML.
Option C : Désactivez la fonctionnalité wrap-onload de JSFiddle
Modifiez le paramètre « Wrap » dans JSFiddle pour « Pas d'enveloppement (tête) » ou « Pas d'enveloppement (corps) ».
Recommandation :
L'option B est l'approche recommandée car elle adhère aux meilleures pratiques en isolant HTML et JavaScript. Il améliore également la maintenabilité du code et permet une mise en œuvre plus facile de modifications ultérieures.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!