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 :

Ex�cution Javascript en bloc


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 2
    Par d�faut Ex�cution Javascript en bloc
    Bonjour,

    Je travaille sur une carte sur laquelle on d�place un bonhomme. Afin d'�viter les bourrinage de lien sur une des fl�ches de d�placement je donne la fonction javascript suivante sur la <div id="test"> qui contient l'image onclick=deplacement().

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    function deplacement() {
     
    document.GetElementById('test').style.backgroundColor = "gold";
    SetInnerHTML(.....); --> actualise la carte dans une div
    document.GetElementById('test').style.backgroundColor = "green";
    }
    La fonction SetInnerHTML est assez lente � executer d'ou mon changement de couleur pour montrer un avant et un apr�s. Le probl�me reste que je clique, j'attends (surement le chargement de setinnerhtml) et paf! il m'execute les 3 fonctions...

    Je souhaiterai qu'il fasse la chose suivante sur clic:

    - passage en "gold"
    - chargement et affichage de la carte
    - passage en "green"

    Actuellement il fait:

    - chargement
    - passage en "gold", affichage de la carte, passage en "green"

    Merci d'avance de votre aide.

  2. #2
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 2
    Par d�faut
    Voici le contenu de la fonction SetInnerHTML():

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    setInnerHTML = function(divContent, HTML) {
    divContent.innerHTML=HTML;
    var All=divContent.getElementsByTagName("*");
    for (var i=0; i<All.length; i++) {
    All[i].id=All[i].getAttribute("id")
    All[i].name=All[i].getAttribute("name")
    All[i].className=All[i].getAttribute("class")
    }
    var AllScripts=divContent.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
    eval(getFileContent(s.src))
    }
    else {
    eval(s.innerHTML)
    }
    }
    }
     
    var pickRecentProgID = function (idList){
     
    var bFound = false;
    for(var i=0; i < idList.length && !bFound; i++){
    try{
    var oDoc = new ActiveXObject(idList[i]);
    o2Store = idList[i];
    bFound = true;
    }catch (objException){
     
    };
    };
     
    if (!bFound)
    throw ("Aucun ActiveXObject n'est valide sur votre ordinateur, pensez mettre jour votre navigateur");
    idList = null;
     
    return o2Store;
    }
     
    // Retourne un nouvel objet XmlHttpRequest
    var GetXmlHttpRequest_AXO=null;
    var GetXmlHttpRequest=function () {
    if (window.XMLHttpRequest) {
    return new XMLHttpRequest()
    }
    else if (window.ActiveXObject) {
    if (!GetXmlHttpRequest_AXO) {
    GetXmlHttpRequest_AXO=pickRecentProgID(["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"]);
    }
    return new ActiveXObject(GetXmlHttpRequest_AXO)
    }
    return false;
    }
     
     
    getXhr=GetXmlHttpRequest;
     
    function getFileContent(url) {
    var Xhr=GetXmlHttpRequest();
    Xhr.open("POST",url,false);
    Xhr.send(null);
    return Xhr.responseText;
    }
    Apr�s pas mal de recherches sur ajax le pb viendrait de:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Xhr.open("POST",url,false);
    Ajax est en mode synchrone ce qui expliquerait l'�x�cution apr�s attente de toutes mes fonctions. Si je le passe en "true" pour asynchrone la fonction SetInnerHTML() ne fonctionne plus :/

    Si quelqu'un a une id�e je suis preneur, merci!

  3. #3
    Membre chevronn�
    Inscrit en
    Novembre 2006
    Messages
    336
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par d�faut
    Tu as trouv� ou ce code

    Tout est m�lang�, y'a des �val qui ne servent � rien, la partie Ajax et la r�percution sont dans la m�me fonction !

    Et �a :

    Aucun ActiveXObject n'est valide sur votre ordinateur, pensez mettre jour votre navigateur
    C'est pas ce qu'on appelle un message user friendly

    Je pense que tu devrais s�parer l'ajax du reste avant toute chose

Discussions similaires

  1. fckeditor : erreur d'ex�cution Javascript
    Par amoussa dans le forum EDI, CMS, Outils, Scripts et API
    R�ponses: 5
    Dernier message: 26/11/2008, 09h33
  2. Ex�cution javascript : probl�me de crossScripting
    Par DlaYR dans le forum Int�gration
    R�ponses: 0
    Dernier message: 02/09/2008, 14h41
  3. [AJAX] Ex�cution Javascript dans XSL (FireFox)
    Par mchaz84 dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 06/03/2007, 08h48
  4. Impossible d'ex�cuter javascript
    Par AzertyH dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 18/10/2006, 18h15
  5. R�ponses: 6
    Dernier message: 22/09/2005, 16h59

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