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 :

Récupérer les fonctions avec cloneNode ?


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 62
    Points
    62
    Par défaut Récupérer les fonctions avec cloneNode ?
    Bonsoir,

    En faite, je suis très content du cloneNode, ca me permet de récupérer les attribut de mes différent élement, par contre, il y a un truc que je cherche à récupérer depuis une heure, ce sont les fonctions...

    exemple :
    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
     
    function monFond()
    {
    	var fond=document.createElement("div"); 
    	fond.id='monFond';
    	fond.setAttribute("titreFond", "monTitre"+Math.random(60));	
    	fond.onmouseover=function(){alert("toto");}
    	return fond;	
    }
     
    function mafenetre()
    {
            var fenetre=document.createElement("div");
            fenetre.id='maFenetre';
            fenetre.setAttribute("titreFenetre", "monTitre");	
     
            var newFond=monFond().cloneNode("true");
            fenetre.appendChil(newFond);
    }
    ca me permet d'avoir le même fond sur chaque fenetre, je récupère bien le titrede mon Fond, mais je remarque deux choses :
    1/ Le math.random du titre du fond, donne le même chiffre, que ce soit le clone ou non,
    2/ La fonction onmouseover ne s'applique pas sur les clones mais sur l'originale...

    Est ce que quelqu'un saurait comment résoudre mon problème ?
    PS : (le math.Random, m'en fiche, c'est juste pour le test )
    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 62
    Points
    62
    Par défaut
    (petit up, j'ai modifié mon post)

  3. #3
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    cloneNode clone le XML... et c'est tout
    1/ Il ne réexécute pas monFond et copie "bêtement" les attributes tels quels
    2/ Il ne copie pas les events, ou autres propriétés user-defined
    Solution pour les events :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (property in fond) {
      if (property.substr(0,2)="on") {
        newFond = fond[property]
      }
    }
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par FremyCompany
    cloneNode clone le XML... et c'est tout
    1/ Il ne réexécute pas monFond et copie "bêtement" les attributes tels quels
    2/ Il ne copie pas les events, ou autres propriétés user-defined
    Solution pour les events :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (property in fond) {
      if (property.substr(0,2)="on") {
        newFond = fond[property]
      }
    }
    pas mal le bidouillage!

    Mais j'ai un autre soucis, j'ai aussi des types Mime (Wmp)
    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
     
    function maMusique
    {
    var obj=document.createElement("object"); 
    obj.id="player";
    obj.setAttribute("type", "application/x-mplayer2");
    obj.setAttribute("filename", "F:/Inter/image/11.wmv");
    obj.setAttribute("AutoStart", 0);
    obj.setAttribute("showcontrols", 0);
    obj.setAttribute("autosize", 1);
     
    monFond.appendChild(obj);
     
    return monFond;
     
    //et je rajoute monFond à ma fenetre par un clone aussi
    }
    là par contre mozilla execute windows media player sur mes fenetres sans problème...

    Par contre, IE quel horreur, wmp s'affiche mais il ne prend aucune propriété...
    Sans le clone, ca marche sinon...

    Si tu avais une soluce ?

Discussions similaires

  1. Réponses: 8
    Dernier message: 25/03/2011, 10h44
  2. Question sur les fonctions avec "TABLE" comme param. de retour
    Par Alex01 dans le forum Développement
    Réponses: 2
    Dernier message: 17/11/2008, 09h26
  3. Réponses: 3
    Dernier message: 23/08/2007, 00h39
  4. Réponses: 4
    Dernier message: 30/03/2007, 18h42
  5. Les fonctions avec PHP?
    Par dessinateurttuyen dans le forum Langage
    Réponses: 3
    Dernier message: 21/07/2006, 10h56

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