Execution JS depuis un appel AJAX
Fermé
anatolekadel
Messages postés
102
Date d'inscription
jeudi 26 mai 2011
Statut
Membre
Dernière intervention
18 novembre 2011
-
25 oct. 2011 à 21:27
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 30 oct. 2011 à 20:14
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 30 oct. 2011 à 20:14
A voir également:
- Execution JS depuis un appel AJAX
- Appel anonyme - Guide
- Pourquoi un pouce apparait pendant appel video whatsapp - Forum WhatsApp
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Renvoi d'appel ooredoo - Forum Mobile
- Appel annulé iphone - Forum Mobile
9 réponses
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
26 oct. 2011 à 08:16
26 oct. 2011 à 08:16
Hello,
Les scripts type "src" ne s'exécutent pas. SRC est l'abbréviation de "source" : ces lignes ne font que charger du code JS se trouvant dans la page visée, mettant ainsi divers variables et fonctions à disposition. Après il faut les lancer manuellement.
Les scripts type "src" ne s'exécutent pas. SRC est l'abbréviation de "source" : ces lignes ne font que charger du code JS se trouvant dans la page visée, mettant ainsi divers variables et fonctions à disposition. Après il faut les lancer manuellement.
anatolekadel
Messages postés
102
Date d'inscription
jeudi 26 mai 2011
Statut
Membre
Dernière intervention
18 novembre 2011
3
26 oct. 2011 à 11:35
26 oct. 2011 à 11:35
Bonjour,
J'ai trouvé ce qui semblait être la réponse; bien que cela ne m'aide pas...
https://forums.commentcamarche.net/forum/affich-10357968-script-javascript-dans-page-ajax
Donc, voilà mon script qui devrait s'exécuter (il est dans ma page PHP appelé par AJAX)
Le alert("Test"); est là juste pour tester si le script fonctionne ou non.
Maintenant, mon code JS qui doit interpréter les scripts JS:
Où est mon soucis ?
J'ai trouvé ce qui semblait être la réponse; bien que cela ne m'aide pas...
https://forums.commentcamarche.net/forum/affich-10357968-script-javascript-dans-page-ajax
Donc, voilà mon script qui devrait s'exécuter (il est dans ma page PHP appelé par AJAX)
echo '<script>'; echo 'alert("Test");'; echo 'var sprytooltip'.$k.' = new Spry.Widget.Tooltip("sprytooltip'.$k.'", "#sprytrigger'.$k.'");'; echo '</script>';
Le alert("Test"); est là juste pour tester si le script fonctionne ou non.
Maintenant, mon code JS qui doit interpréter les scripts JS:
function request(url,cadre) { var XHR = getXMLHttpRequest(); XHR.open("GET",url, true); XHR.onreadystatechange = function attente() { if(XHR.readyState == 4) { document.getElementById(cadre).innerHTML = XHR.responseText; var AllScripts = cadre.getElementsByTagName('script'); for (var i=0; i<AllScripts.length; i++) { var s=AllScripts[i]; if (s.src && s.src!="") { // Précédement asynchrone, mis en synchrone pour éviter des problèmes de dépendances de scripts alert(s.src); eval(getFileContent(s.src)); } else { eval(s.innerHTML); } } } else { document.getElementById(cadre).innerHTML = '<img src="content/loading.gif"/>'; } } XHR.send(null); return; }
Où est mon soucis ?
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
28 oct. 2011 à 09:36
28 oct. 2011 à 09:36
modifies:
if(XHR.readyState == 4 && XHR.readyState == 200)
pour attendre la réception complète de la réponse
if(XHR.readyState == 4 && XHR.readyState == 200)
pour attendre la réception complète de la réponse
anatolekadel
Messages postés
102
Date d'inscription
jeudi 26 mai 2011
Statut
Membre
Dernière intervention
18 novembre 2011
3
28 oct. 2011 à 23:37
28 oct. 2011 à 23:37
ça n'a rien changé malheureusement :(
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
29 oct. 2011 à 09:28
29 oct. 2011 à 09:28
si je comprend bien tu veux faire executer des scripts javascript au moment de la réception / afffichage du contenu de chaque onglet ?
Alors essayes de mettre ces scripts dans des fonctions qui seront chargées dès le départ dans la page, elles ne doivent ps faire des Mégaoctets,, puis,
mais ton nombre de fonction n'est pas fixe suivant les onglets alors au lieu de réponseText utilises reponse XML et la tu peux avoir une réponse a plusieurs items
vas voir sur google comment ça marche
tu as aussi Json
Alors essayes de mettre ces scripts dans des fonctions qui seront chargées dès le départ dans la page, elles ne doivent ps faire des Mégaoctets,, puis,
XHR.onreadystatechange = function attente() { if(XHR.readyState == 4 && XHR.readyState == 200) { document.getElementById(cadre).innerHTML = XHR.responseText; //et la tu lances tes fonctions fonction_js1(); fonction_js2(); fonction_js3();
mais ton nombre de fonction n'est pas fixe suivant les onglets alors au lieu de réponseText utilises reponse XML et la tu peux avoir une réponse a plusieurs items
vas voir sur google comment ça marche
tu as aussi Json
anatolekadel
Messages postés
102
Date d'inscription
jeudi 26 mai 2011
Statut
Membre
Dernière intervention
18 novembre 2011
3
29 oct. 2011 à 13:15
29 oct. 2011 à 13:15
En fait, cela ne m'arrange pas... J'ai trouvé ça sur CCM:
https://forums.commentcamarche.net/forum/affich-10357968-script-javascript-dans-page-ajax#p23490249
Dans le 2ème message, ils expliquent comment faire. C'est pile poil ce que j'ai besoin, si ce n'ai que j'arrive pas à faire ce qu'ils font ^^.
https://forums.commentcamarche.net/forum/affich-10357968-script-javascript-dans-page-ajax#p23490249
Dans le 2ème message, ils expliquent comment faire. C'est pile poil ce que j'ai besoin, si ce n'ai que j'arrive pas à faire ce qu'ils font ^^.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
29 oct. 2011 à 21:30
29 oct. 2011 à 21:30
bonsoir,
Je viens de faire l'essai avec une page et de l'Ajax, ça coince au niveau de cette ligne:
var AllScripts = cadre.getElementsByTagName('script');
il faudrait document.getElementByTagName('script'); et pas cadre donc ça te retournerait tous les scripts de ta page complète
et la je ne vois pas comment faire pour parcourir seulement ceux chargés par ajax dans le div avec getElement...
Si tu a un peu de délai, je regarderai la solution que je te proposait avec réponse XML / appel de fonctions et te la transmettrait
Je viens de faire l'essai avec une page et de l'Ajax, ça coince au niveau de cette ligne:
var AllScripts = cadre.getElementsByTagName('script');
il faudrait document.getElementByTagName('script'); et pas cadre donc ça te retournerait tous les scripts de ta page complète
et la je ne vois pas comment faire pour parcourir seulement ceux chargés par ajax dans le div avec getElement...
Si tu a un peu de délai, je regarderai la solution que je te proposait avec réponse XML / appel de fonctions et te la transmettrait
anatolekadel
Messages postés
102
Date d'inscription
jeudi 26 mai 2011
Statut
Membre
Dernière intervention
18 novembre 2011
3
29 oct. 2011 à 23:24
29 oct. 2011 à 23:24
Oui, j'ai tout mon temps ^^. J'avais aussi fait avec tous les scripts de la page; mais là encore, ça ne m'arrange pas car j'ai des alert() à certains endroits qui ne doivent pas être ré-exécuté...
Merci de m'aider ;)
Merci de m'aider ;)
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
30 oct. 2011 à 20:14
30 oct. 2011 à 20:14
je t'ai envoyé un mp