Maison  >  Article  >  interface Web  >  Comment évaluer les fonctions JavaScript renvoyées à partir des réponses Ajax ?

Comment évaluer les fonctions JavaScript renvoyées à partir des réponses Ajax ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-22 12:44:03169parcourir

How to Evaluate Returned JavaScript Functions from Ajax Responses?

Intégration des fonctions JavaScript renvoyées par Ajax

Le défi se pose lorsqu'une réponse Ajax délivre un bloc de script contenant une fonction JavaScript. L'exécution de cette fonction devient nécessaire pour déclencher des actions spécifiques.

Solution : évaluer le code de fonction

Malgré son placement au sein d'un

élément, le navigateur ignore l'existence de la nouvelle fonction à moins que le code de déclaration ne soit explicitement exécuté. Pour y parvenir, le code de la fonction doit être évalué à l'aide de eval(), déclarant officiellement la fonction et la rendant accessible tout au long de la durée de vie de la page.

Considérons l'exemple simplifié suivant :

<code class="html"><script>
  var newFunc = '<script>function go() { alert("Hello!") }</script>';
  var e = document.getElementById('myElement');
  e.innerHTML = newFunc;
  eval(document.getElementById('newFunc').innerHTML);
</script></code>

Dans Dans ce scénario, Ajax n'est pas utilisé, mais le concept reste le même. Le bloc de script est inséré dynamiquement dans un fichier

avant que eval() ne soit utilisé pour exécuter la déclaration de fonction.

Considérations supplémentaires

Il convient de noter que cette approche peut ne pas être optimale dans toutes les situations. Les invocations répétées d'Ajax ou les préoccupations concernant la persistance des fonctions dans différents contextes peuvent justifier des solutions de conception alternatives telles que :

  • Exposer la fonction dans un fichier JavaScript séparé
  • Utiliser l'approche prototype décrite par krosenvold ( compatibilité entre navigateurs, fonctionnalités testées)

En fin de compte, la meilleure solution dépend des exigences spécifiques et du contexte de l'application.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn