IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] execution js dans page ajax


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Points : 97
    Points
    97
    Par défaut [AJAX] execution js dans page ajax
    Bonjour à tous,
    j'ai un petit problème bizar !
    mon script js ne s'éxecute pas lorsque je l'insère dans ma page ajax.
    Il fonctionne très bien sur ma page principale qui appèle l'ajax.
    Quelqu'un à t il déjà eu ce pb?
    Merçi

  2. #2
    Membre habitué Avatar de rieppe
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 115
    Points : 129
    Points
    129
    Par défaut
    Salut,

    Quel genre de script ?

    Qu'est ce que tu appel page ajax ? Une page avec du contenu obtenu via xmlhttpRequest ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Points : 97
    Points
    97
    Par défaut
    c'est un script tout simple, du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <script type='text/javascript'>
    var mavaleur=dat();
    var obj = document.getElementById("date_crea")
    obj.value=mavaleur;
    </script>
    Ma page principale utilise une fonction avec XMLHttpRequest pour afficher mon résultat(tebleaux, champs textes,listes...) dans un div

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Points : 97
    Points
    97
    Par défaut
    Mon code ajax fonctionne parfaitement et me renvoi mes résultats, mais il m'est impossible d'éxécuter le moindre script js dans les pages appelées en ajax...

  5. #5
    Membre habitué Avatar de rieppe
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 115
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par Mat_DZ
    Ma page principale utilise une fonction avec XMLHttpRequest pour afficher mon résultat(tebleaux, champs textes,listes...) dans un div
    Dans ce cas je pense que tu dois appeler ta fonction js en fin de ta fonction qui récupère ton résultat via xmlhttpRequest. Puisque je pense pas qu'elle soit appelée sinon.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Points : 97
    Points
    97
    Par défaut
    meme sans appeler aucune fonction ca ne fonctionne pas, par exemple si j'execute le script qui suis dans ma page appelée via XMLHttpRequest, rien ne se passe. c'est quand meme bizar :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <script type='text/javascript'>
    alert('test')); 
    </script>

  7. #7
    Membre habitué Avatar de rieppe
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 115
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par Mat_DZ
    meme sans appeler aucune fonction ca ne fonctionne pas, par exemple si j'execute le script qui suis dans ma page appelée via XMLHttpRequest, rien ne se passe. c'est quand meme bizar :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <script type='text/javascript'>
    alert('test')); 
    </script>
    (Là pas trop puisqu'il y a une parenthèse en trop ^^)

    Mais ca dépend ou tu veux que ce code soit éxécuté. Si c'est lorsque tu récupère le résultat d'un script php ou tout autre langage coté serveur, je pense que c'est normal, puisque le xmlhttpRequest (jl'appelle xhr a parti d'ici ^^) récupère de l'info en quelque sorte en arrière plan non ?

    A voir, je m'y connais pas encore vraiment bien dans l'utilisation de l'objet xhr mais je pense que c'est normal de ce coté.

    Si tu veux que du code JS s'éxécute dans ta page principale quand tu récupère la fonction js depuis xhr, là à mon avi il faut explicitement appeler ta fonction a la fin de la fonction dans laquelle tu récupère le xhr.responseText, si tant est que cela soit possible :/

  8. #8
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    J'ai tenté la même et c'est vrai que c'est frustrant.

    dans ma page php appellée par xmlhttpRequest (ajax ?) , impossible d'executer le moindre petit script javascript.

    Disons qu'après tests, .. ca marche, avec ceci:

    <form name="form1" onSubmit="doPassVar(sendText);" action="#" >
    <input type="button" name="sendText" maxlength="45" value="<? echo $dl; ?>" onClick="doPassVar(this);" >
    </form>
    doPassVar est effectivement executée ! (du moins sous fox)

    mais demander une simple execution de

    <script type="text/javascript">

    alert('test');

    </script>
    dans la page chargée en xmlhttprequest dans le div de l'index
    , et bien alert ne marche pas.

    C'est super frustrant, parce que mon 1er exemple prouve que cela pourrait parfaitement etre possible !
    j'ai essayé un <body onload="";> egalement, mais bon deux balises body c'était une mauvaise idée dès le debut .. et ca marche pas evidemment.

    n'y aurait il pas un equivalent de <div onload=".."> ? ou une meilleure idée ?

  9. #9
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    http://www.developpez.net/forums/sho...?t=6259&page=2

    ->Pourquoi mon script JS ajouté à ma page avec innerHTML (AJAX, XSLT, ...) ne marche-t-il pas ?

    Est ce bien de cela dont il s'agit ?

    Si oui, comment se servir de SetInnerHTML ? (j'ai essayvé avec onclick="SetinnerHTML('nom du div','url')" mais ca ne marche pas ...)

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Points : 89
    Points
    89
    Par défaut
    J'ai exactement le meme problème, des fonctions appellées par des liens passent, mais pas des fonctions appellées "automatiquement" dans un xhr..

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Le problème de l'éxécution de scripts javascript vient du défaut d'implémentation du innerHTML par les navigateurs, qui zappent (entre autres le code je crois).
    D'ou l'intérêt du SetInnerHTML mentionné ici :http://www.developpez.net/forums/sho...?t=6259&page=2

    Pour l'utiliser avec Ajax, il faut remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById(id).innerHTML=xhrequest.responseText;
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setInnerHTML(document.getElementById(id), xhrequest.responseText)
    oui, la fonction ne prend pas un id en tant que String, mais un objet.

    Ca roule sous IE et Firefox avec du javascript dans les pages appelées par xmlHttpRequest.

  12. #12
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    exellent ça marche merci !!

    (démo: http://5tfu.org )

Discussions similaires

  1. Navigation Ajax et Script dans Page
    Par CedriZero dans le forum jQuery
    Réponses: 3
    Dernier message: 10/07/2013, 12h45
  2. [MooTools] Execution de script dans une page ajax généré par mootools
    Par gaet-gaet dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 26/09/2009, 12h28
  3. [Prototype] JavaScript dans page AJAX
    Par brazilia28 dans le forum Bibliothèques & Frameworks
    Réponses: 6
    Dernier message: 03/01/2008, 11h50
  4. [AJAX] Execution de script en AJAX
    Par levraiptitpiou dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/12/2006, 10h36
  5. [SGBD] Executer mysqldump dans page php
    Par JCDC dans le forum Débuter
    Réponses: 1
    Dernier message: 15/09/2005, 14h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo