5568 sujets

Sémantique web et HTML

Pages :
(reprise du message précédent)

Oui mais la n'est pas du tout le problème Smiley smile

Par exemple à l'instant, j'ai un div qui contient des infos decrivant une image, avec l'image bien sur Smiley cligne et aussi deux liens suivant et précedent.

Quand je clique sur les liens suivant et précédent j'ai envie de changer une l'image en cours, le problème c'est que ca va rafraichir toute la page, donc j'ai fait ca en javascript, et je change dynamiquement les images, le problème reste à savoir ou sont les images pour cela, j'ai fait un fichier xml que je recupere via ajax etc...


au final, j'ai donc


<div class="maGallerie">
<img />
<p class="description">
<ul>
<li><a href="lienversimagesuivante">suivante</a></li>
<li ... precedent ... />
</ul>
</div>


Le problème reste de passer le fichier xml pour que je puisse connaitre les images


<div class="maGallerie" cyril:property="xmlFile:monfichier.xml">
<img />
<p class="description">
<ul>
<li><a href="lienversimagesuivante">suivante</a></li>
<li ... precedent ... />
</ul>
</div>


Ensuite je boucle sur tous les div ayant l'id une bonne dose de javascript et tout est beau Smiley smile et la c'est encore un cas particulier, mais il y a beaucoup de cas ou l'on a besoin d'une propriété en plus.

pour l'instant j'ai pas fait le fichier xml etc... mais ce que j'ai commencé se trouve ici : http://www.cyrildurand.net/test/test.htm c'est loin d'etre encore finit car il y a encore quelques bugs, et puis il faut écrire encore beaucoup de javascript (au final juste de mettre la propriété ou classe qui dit que c'est une gallerie, et le fichier xml et le tour sera joué Smiley cligne )
Modifié par CyrilCS (28 Aug 2005 - 20:12)
Il est possible de récupérer une propriété css d'un élément dom.

Un truc du genre : element.style.backgroundColor en lecture et écriture.

Maintenant, trouver une propriété permettant de stocker du texte?, et qui n'influera pas sur l'affichage... ou ne plantera pas momentanément l'interpréteur, comme ça m'arrive tout le temps...

C'est un problème de timidité. IE rajoute et retranche illégalement des propriétés, comme netscape, comme firefox, alors je n'ai pas de scrupules à le faire le plus proprement possible. Et avec Cyrile, on va trouver moyen de le faire dans les règles de l'art. Mais pas ce soir!
Moi j'ai considère le problème comme clos Smiley langue c'est pas le cas Georges ?


Si tu parles de la fonction qui permet de récuperer les valeurs :


utilities.DOM = {
    getProperty : function(elmt, key)
    {
        var properties = elmt.getAttribute('cyril:property');
        if ( !properties ) 
            return null; 
        properties = properties.split(';');
        for ( i = 0; i < properties.length; i++) 
        {
           if ( unescape(properties[i ].split('=')[0]) == key) 
                switch ( unescape(properties[i ].split('=')[1]) )
                {
                    case "true" :
                        return true;
                        break;
                        
                    case "false" :
                        return false; 
                        break;
                        
                    default :
                        return unescape(properties[i ].split('=')[1]);
                        break;
                }
        }
    }, 
    
    setProperty : function(elmt, key, value)
    {
        if ( ! elmt.getAttribute('cyril:property') )
        {
            elmt.setAttribute('cyril:property', escape(key) + '=' + escape(value))
            return; 
        }

        if (this.getProperty(elmt, key) == undefined || this.getProperty(elmt, key) == null )
        {
            elmt.setAttribute('cyril:property', elmt.getAttribute('cyril:property') + ';' + escape(key) + '=' + escape(value));
        }
        else
        {
            var properties = elmt.getAttribute('cyril:property');
            properties = properties.split(';');
            var newProp = '';
            for ( i = 0; i < properties.length; i++) 
            {
                if ( unescape(properties[i ]).split('=')[0 ] == key) 
                    properties[i ] = escape(key) + '=' + escape(value);
                newProp += ';' + properties[i ]; 
            }
            elmt.setAttribute('cyril:property', newProp);
        }
    }
};


a mon avis ca va être horrible à lire à cause de l'indentation Smiley decu au pire il est dans le fichier js de la page exemple

http://www.cyrildurand.net/test/test.htm
GeorgesM a écrit :
Il est possible de récupérer une propriété css d'un élément dom.

Un truc du genre : element.style.backgroundColor en lecture et écriture.

Attention quand même, l'objet style ne contient que les styles définis dans l'attribut style, pas dans les styles externes.

Sinon CyrilCS, pour ton problème, je dis peut-être une grosse grosse connerie étant donné que je n'ai pas compris toute la problématique, mais as-tu songé à l'utilisation d'<input type="hidden"> pour stocker tes valeurs ? Et pourquoi pas tout simplement dans une variable javascript au fait ?
En fait, je veux stocker une variable pour un noeud précis.

si je met ca dans une variable javascript, il me faut quelque chose qui se rapporte au noeud, donc l'utilisation d'une variable input type="hidden" est impossible.

l'autre solution est de mettre un id au noeud, puis à partir de la, rajouté un peu de js.

Et je voulais justement savoir la meilleure solution Smiley smile
CyrilCS a écrit :
En fait, je veux stocker une variable pour un noeud précis.

si je met ca dans une variable javascript, il me faut quelque chose qui se rapporte au noeud, donc l'utilisation d'une variable input type="hidden" est impossible.

Et en mettant les input hidden dans le noeud auquel ils se rapportent ? La relation parent-enfant ne suffirait pas ?
Pages :