Maison  >  Article  >  interface Web  >  Pouvez-vous appeler des fonctions JavaScript renvoyées par les réponses Ajax ?

Pouvez-vous appeler des fonctions JavaScript renvoyées par les réponses Ajax ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-22 20:59:021005parcourir

Can You Call JavaScript Functions Returned from Ajax Responses?

Appel de fonctions JavaScript renvoyées par les réponses Ajax

Dans de nombreux systèmes, les requêtes Ajax renvoient des blocs de script contenant des fonctions qui doivent être appelées après l'insertion des données. . Cela soulève la question de savoir si de telles fonctions sont appelables après avoir été insérées dans un DIV.

Est-ce possible ?

Oui, l'appel des fonctions JavaScript renvoyées est possible, en supposant :

  • La déclaration de fonction renvoyée est syntaxiquement correcte.
  • La déclaration de fonction est évaluée à l'aide de eval(). Ceci exécute le code de déclaration et rend la fonction disponible tout au long de la durée de vie de la page.

Exemple de code :

Le code suivant illustre le concept sans utiliser Ajax :

<code class="javascript">var newsc = '<script id="sc1" type="text/javascript">function go() { alert("GO!") }</script>';
var e = document.getElementById('div1');
e.innerHTML = newsc;
eval(document.getElementById('sc1').innerHTML);</code>

Considérations :

Bien que vous puissiez externaliser la fonction dans un fichier .js distinct, cela peut entraîner des problèmes avec des invocations Ajax répétées ou des changements de contexte de fonction. Par conséquent, réfléchissez attentivement à vos choix de conception.

Approche alternative :

Si vous avez besoin d'un appel contextuel de la fonction immédiatement après avoir reçu la réponse Ajax, il est recommandé d'utiliser l'approche Prototype décrite par Krosenvold. Il est multi-navigateur, testé et fournit une base solide pour les implémentations futures.

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