OK Le code HTML suivant est analysé lorsque je charge une page:
<div id="clip-wrapper">
<script type="text/javascript">
alert("ajaxbla");
</script>
</div>
4 Réponses :
Mettez votre code dans
$.ajax({
url: "test.html",
context: document.body,
success: function(){
$(this).addClass("done");
}
});
J'ai essayé votre suggestion, il analyse le code HTML suivant:
C'est inclus, comme j'utilise WordPress.
Je ne t'ai pas dit, quelqu'un d'autre. Je n'ai pas +1 vous non plus, désolé.
@peterbond - Avez-vous essayé une fonction d'appel AJAX de la réponse éditée
Non, je ne l'ai pas, je n'utilise pas JQuery Désolé. I + 1'ed You (il a au moins dédié le -1 de quelqu'un d'autre) pour vos efforts, comme il semble que le code édité fonctionnera pour JQuery, en utilisant le succès. J'ai utilisé la solution fournie par @Adam Rayis et cela fonctionne comme un charme, également avec mon script réel (chargement d'un film dans JWPlayer, en fonction de ce que l'utilisateur a cliqué sur).
S'il y a des scripts chargés dans votre DOM d'un appel Ajax, ils seront pas em> être exécutés pour des raisons de sécurité. Pour que le script soit exécuté, vous devez le supprimer hors de la réponse et l'exécuter via Idéalement, vous voudrez vouloir courir Votre script en tant que raclage Si vous souhaitez vraiment opter pour l'option EVAL, vous pouvez essayer quelque chose comme ceci: P> eval code> p> document.getElementById(contentDiv).innerHTML = xmlHttp.responseText;
eval(document.getElementById("clip-wrapper").innerHTML);
Pouvez-vous éloigner comment je peux le sortir de la réponse? Et passez-le à travers eval après? J'utilise le code suivant: STETCHANGED () {if (xmlhttp.readytstate == 4) document.getelementbyid (contentdiv) .innerhtml = xmlhttp.responseText; } code> où contentDiv est emballage à pince dans ce cas. (Est-ce aussi simple que Eval (xmlhttp.responsetext);?)
Ok je pense que j'ai bien, mais cela ne fonctionne toujours pas: si (xmlhttp.readytstate == 4) {document.getelementByID (contentdiv) .innerhtml = xmlhttp.responseText; eval (document.getelementbyid (contentdiv) .innerhtml); } code> est-ce que je manque quelque chose? Merci pour l'aide, appréciez vraiment cela!
Je ne pense pas que eval aime les étiquettes de script dans la présente - pouvez-vous renvoyer la réponse sans eux?
Cela n'implique-t-il pas que le DIV ne sera rempli que d'alerte ("msg"); code> de sorte qu'il ne fonctionnera pas comme code JavaScript? Ou suis-je compréhension de toi à tort?
Si cela vient de remplir d'alerte ("msg"), vous pouvez transmettre cela à Eval, et cela fonctionnera certainement - eval ("alerte (" msg ");"); marchera
Pour plus d'exemples: Stackoverflow.com/Questtions/978101/...
Si vous ne pouvez pas vous attacher à l'appel Ajax réel (car il est généré par C # dans mon cas) utilisez $ (document) .ajaxcomplete () et faites votre travail là-bas.
Tout code à l'intérieur du corps entre dans l'appel d'Ajax, utilisez script code> est exécuté uniquement lors du chargement du document. P>
Callback code> ou SUCCESS: CODE> ou ONCOMPETE: CODE> Pour gérer la réponse AJAX si vous utilisez jQuery. < / p>
Vous voulez dire que le deuxième code HTML vient comme une réponse AJAX ?? Avez-vous même inséré le code HTML à la page en cours?
quelque chose comme, p> mais même avec Une autre option consiste à utiliser innerhtml code> de remplacement je ne sais pas le script code> à l'intérieur, il sera exécuté automatiquement. Le navigateur va analyser le script code> mais ne l'exécute pas automatiquement. (Par exemple, si vous avez une fonction de la fonction code> dans le HTML, après l'appel AJAX, vous pourrez appeler ces fonctions) p> document .Write code>, il remplacera le contenu de la page entière avec le nouveau script HTML et le script CODE> Script CODE>. > J'espère que cela aide, p> p>