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 :

Attribut Title invisible dans un SPAN


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Vow
    Vow est déconnecté
    Membre éprouvé Avatar de Vow
    Inscrit en
    Janvier 2003
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 259
    Par défaut Attribut Title invisible dans un SPAN
    Bonjour

    Je vais essayer d'expliquer un peu mieux mon soucis que ce que mon titre.
    Je développe une petite fonction pour une extension Firefox et j'ai besoin de récupérer (et voire peut-être modifier, on verra plus tard) l'attribut TITLE d'une balise SPAN précise. Sauf que cet attribut a l'air inexistant, ce qui ne l'est pas en regardant le code JS de la page en question.

    J'accède bien à la balise en question (j'ai vérifié avec la méthôde innerHTML), mais le seul attribut trouvé est la classe.
    J'ai essayé de plusieurs façons. Pour faire rapide : monSpan.title, monSpan.getAttribut("title"), monSpan.style.title et même en listant la liste des attributs du SPAN, il n'en trouve toujours qu'un : class.

    Du coup, je me demandais s'il n'y avait pas "d'interférence" avec la classe en question (c'est un peu con, je sais, mais bon je deviens parano dans cette affaire ) ou mooTools qui est utilisé dans cette page.

    Quelqu'un pourrait m'aider, s'il vous plaît ?
    Peut-être que la grenouille va sauter à mon aide

    Merci d'avance.

    PS : J'ai bien lu le forum, je pensais même avoir trouvé ma solution... mais non.

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    du code , du code ^^

    sinon , dans la source , as tu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <span title="un beau titre"></span>
    si oui un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <span title="un beau titre" id="MaSpan"></span>
    <input type="button" value="voir le titre" onclick="alert(document.getElementById('MaSpan').title)" />
    marche parfaitement

  3. #3
    Vow
    Vow est déconnecté
    Membre éprouvé Avatar de Vow
    Inscrit en
    Janvier 2003
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 259
    Par défaut
    Tu m'obliges à modifier le code (top secret, obligé de tuer après ).

    Alors, du côté de l'HTML (je n'en suis pas responsable, mais obligé de travailler avec), c'est quelquechose du genre :
    Code HTML : 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
    <div id="infoTruc"><span class="thisisatooltip" title="
            <table>
                    <tr id=infoTrucTr1>
                            <td>Partie 1</td>
                            <td>Partie 2</td>
                            <td>Partie 3</td>
                    </tr>
                    <tr id=infoTrucTr2>
                            <td colspan=3><hr id=infoTrucHr></td>
                    </tr>
            </table>
            <table>
                    <tr>
                            <td>Partie 1</td>
                            <td>Partie 2</td>
                            <td>Partie 3</td>
                    </tr>
                    <tr>
                            <td>Partie 1</td>
                            <td colspan=2>Partie 2</td>
                    </tr>
            </table>
            "><a href="lien.php?param1=2"><img src="image1.jpg" border="0"></a></span></div>


    Quant au code JS, en premier lieu, je recherche l'élément SPAN :
    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    var monSpan = window.content.document.getElementById("infoTruc").firstChild;

    Les différents appels pour trouver TITLE :
    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    alert(monSpan.title);   // vide
    alert(monSpan.style.title);   // vide
    alert(monSpan.getAttribute("title"));  //vide


    En faisant :
    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var atttt = monSpan.attributes;
    for (x = 0 ; x < atttt.length; x++)
    {
    	alert (atttt[x].name + "->" + atttt[x].value);
    }
    alert ("Taille : " + atttt.length);
    Je n'ai qu'un alert dans la boucle : "class->thisisatooltip". Et atttt.length vaut 1.

    Et un alert( window.content.document.getElementById("infoTruc").innerHTML) retourne :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <span class="thisisatooltip"><a href="lien.php?param1=2"><img src="image1.jpg" border="0"></a></span>

    Du coup, j'en suis venu à penser que ça venait de mooTools (utilisé dans la page HTML), puisqu'apparemment la classe "thisisatooltip" fait partie de cette lib JS.


    PS : Je rappelle que le code JS est dans une extension Firefox.

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut


    ça c'est fait je m'excuse , je n'ai pas pu lire ton post en entier
    la raison ceci dans la balise title :


    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
     
    "
    	<table>
    		<tr id=infoTrucTr1>
    			<td>Partie 1</td>
    			<td>Partie 2</td>
    			<td>Partie 3</td>
    		</tr>
    		<tr id=infoTrucTr2>
    			<td colspan=3><hr id=infoTrucHr></td>
    		</tr>
    	</table>
    	<table>
    		<tr>
    			<td>Partie 1</td>
    			<td>Partie 2</td>
    			<td>Partie 3</td>
    		</tr>
    		<tr>
    			<td>Partie 1</td>
    			<td colspan=2>Partie 2</td>
    		</tr>
    	</table>
    	"><a href="lien.php?param1=2"><img src="image1.jpg"
    STRICTEMENT interdit, la balise title n'est pas faite pour recevoir du code html et de plus ta dernière balise image n'est pas fermée ^^

    utilise plutôt ton tableau de façon masqué . . .

  5. #5
    Vow
    Vow est déconnecté
    Membre éprouvé Avatar de Vow
    Inscrit en
    Janvier 2003
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 259
    Par défaut
    Euh, le code HTML n'est toujours pas de moi
    Par contre la balise IMG est bien fermée Et je n'ai vu nulle part l'interdiction de mettre du code HTML dans l'attribut TITLE.

    Merci quand même


    Citation Envoyé par Auteur Voir le message
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    var monSpan = window.content.document.getElementById("infoTruc").firstChild;
    euh... Plus simplement :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    var monSpan = document.getElementById("infoTruc").firstChild;
    ensuite le span n'est pas forcément le firstChild (cela va dépendre des navigateurs).
    Une extension Firefox ne fonctionne que sur Firefox, non ?

    Quoiqu'il en soit, que j'utilise firstChild ou getElementsByTagName("span"), ça revient au même

  6. #6
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    sinon vérifie que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(document.getElementById("infoTruc").firstChild.tagName);
    affiche SPAN

    2 cas :

  7. #7
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par Vow Voir le message
    Une extension Firefox ne fonctionne que sur Firefox, non ?
    oui logiquement.
    Citation Envoyé par Vow Voir le message
    Quoiqu'il en soit, que j'utilise firstChild ou getElementsByTagName("span"), ça revient au même
    non justement :
    - firstChild renvoi le 1er noeud trouvé et ce n'est pas forcément un span.
    - getElementsByTagName("span") renvoi un tableau de span contenus dans l'élément parent. Et les objets contenus dans ce tableau ne sont que des span.

  8. #8
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    une chose me dérange dans ton code HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id="infoTruc"><span class="thisisatooltip" title="
    	<table>
             ....
            </table>
    	">
    c'est une faute de frappe où la balise title contient du code HTML
    [edit]grillé sur cette première partie [/edit]



    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    var monSpan = window.content.document.getElementById("infoTruc").firstChild;
    euh... Plus simplement :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    var monSpan = document.getElementById("infoTruc").firstChild;
    ensuite le span n'est pas forcément le firstChild (cela va dépendre des navigateurs).

Discussions similaires

  1. [HTML] Retour à la ligne dans un attribut title
    Par totoen dans le forum Balisage (X)HTML et validation W3C
    Réponses: 17
    Dernier message: 29/11/2012, 12h05
  2. Réponses: 1
    Dernier message: 27/05/2010, 00h42
  3. saut de ligne dans un attribut title
    Par youness78 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 26/07/2007, 01h48
  4. explo de BD : zone de saisie SQL invisible dans
    Par sebitor dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/03/2004, 17h39
  5. comment changer d'attribut de fonte dans un Tlabel?
    Par sb dans le forum Composants VCL
    Réponses: 3
    Dernier message: 21/08/2002, 16h53

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