Effectivement, j'avais zappé le eval... tellement braqué sur le reste.
Je vous dis merci, parce que ça fonctionne très bien à présent !
Effectivement, j'avais zappé le eval... tellement braqué sur le reste.
Je vous dis merci, parce que ça fonctionne très bien à présent !
Bon je reviens à la charge, désolé :p
Il reste un petit soucis,
Quand j'ai des JS dans ma page affichée dans le div, et ben, ils ne sont pas exécutés.. qq'un sait-il comment faire ?
"eval" sert a executer du javascript stocké dans un "string" en principe
Le forum c'est trop génial
oui mais mon prob c est que mon retour d'ajax est une string comprenant une page html, dans laquelle il y a un peu de javascript. Je peux pas faire eval de cette string vu que pas que du JS dedans...
Salut,
Tes fonctions javascripts ne fonctionnent pas ou ne s'executent pas ?
Si elles ne fonctionnent pas c'est peut être un problème d'interprétation du code ? Si c'est le cas je ne connais qu'eval. Il y a du découpage de chaine dans l'air à mon avis.
Si elles ne s'executent pas comment les fonctions sont elles appellées ?
Merci
beegood,
Donc je reprends le code que tu avais mis
Code :
document.getElementById('Main').innerHTML = xhr.responseText
dans ma chaine responseText il y a de l'html qui correspond à une page web complete donc de <html> à </html>.
Naturellement il y a un peu de JS dedans, que ce soit dans le header avec une fonction ou l'autre, ou dans le body, par exemple betement un alert('hello');
le document.getElementById('Main').innerHTML
va ecrire dans le DIV 'Main' ma page, ok, avec le JS, ok, mais ne va pas exécuter/interprêter le JS. Je vois du coup pas trop comment je dois faire pour qu'il le fasse, tu parles de découpage dans ma chaine, pour sélectionner les parties JS et faire un eval() dessus j'imagine, mais bon... c'est un peu lourd ça non ? Maintenant si c est la seule solution....
Merci pour ta reponse,
Seb.
As tu essayé de mettre dans ta page incluse une fonction simple faisant un alert('hello') et appeller cette fonction au chargement de ta page principal pour voir ce que cela fait ?
et puis faire simplement un alert('hello') en javascript hors fonction dans ta page incluse ?
le code javascript est il executé ?
et si apres le "innerHTML = response.HTML" tu faisais une boucle sur chaque balise "script" qu'il contient et de lancer "eval" sur chaque?
Le forum c'est trop génial
J'ai trouvé un script qui permettra PEUT ETRE de résoudre mon probleme.. un script qui charge des JS dynamiquement.. ou exécute si ce J essayerai de tester ca ce soir et je vous dirai quoi.
Comme disait sacha, tu peux essayer un truc dans ce genre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 var scripts = xhr.responseXML.getElementsByTagName("script"); for (var v=0; v<scripts.length;v++) eval(scripts[v].firstChild)
Bonjour,une petite recherche donne une réponse dans les Contributions Javascript ...
A+
Pour tout savoir sur l'utilisation du forum
En postant votre message, n'oubliez pas les Règles du Club.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager