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 :

getElementById(maVariable).src sous Ie8


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    35
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 35
    Par d�faut getElementById(maVariable).src sous Ie8
    Bonsoir
    voila j'ai un pb avec un script,

    je suis dans une boucle et je voudrai r�cup�rer la src de l'image
    j'ai bien essay� avec jquery:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var test = $('#scroller li img').eq(cpt).attr("src")
    mais attr ne fait pas bon m�nage avec IE8 ...
    ... sous les autres navigateurs noprobl�mo

    alors je suis pass� en JS

    Quand j'�cris:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var test = document.getElementById('nb5').src
    �a marche m�me sous IE8,
    par contre comme je suis dans une boucle je veux pouvoir �crire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    var temp = 'nb'+compteur
    var test = document.getElementById(temp).src
    ou
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var test = document.getElementById('nb'+compteur).src
    et l�, �a ne marche plus sous IE8

    avez-vous une id�e ?
    une alternative ?

    Merciiiiii d'avance

    Patrick

  2. #2
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Difficile de te r�pondre avec si peu de renseignements...
    Il faudrait que tu montres un peu plus de code et notamment � quoi te sert ta variable test.
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  3. #3
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    35
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 35
    Par d�faut
    Merci pour ta r�ponse

    le code est un peu long je vais tenter de d�crire

    Il s'agit d'un script qui r�cup�re un element d'un scroller (un li) via AJAX (donc pas vraiment une boucle ... mais il y a quand m�me une notion de compteur) afin de modifier l'adresse d'une image.
    L'image dans la liste est un petit png de 10ko et je veux le remplacer par sa bonne image. (un chargement lazzy en quelque sorte)

    la valeur de test attendue est: "http://www.domaine.fr/img/monImage.jpg

    Par la suite je modifie cette adresse, elle contient des infos qui me sont indispensables pour la modification.
    Une fois le traitement de la variable test r�alis� je modifie le src avec

    document.getElementById('nb'+compteur).src = testModifi�

    et l� encore �a plante sous ie8 qui ne veut pas "comprendre" ('nb'+compteur)
    ou m�me une simple variable.
    par contre ici aussi si j'�cris
    document.getElementById('nb5').src = testModifi�
    Ie8 modifie bien la valeur de l'attribut src de l'image

    j'esp�re avoir �t� assez clair, merci

  4. #4
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    �a veut dire quoi "�a marche plus" ? quelle est l'erreur js ?
    comme je l'ai d�j� dit dans plusieur post les m�thodes get du DOM peuvent retourner null
    le developpeur doit donc s'assurer que l'objet existe avant tout manipulation
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    var theNB5 = document.getElementById('nb5');
    if (null != theNB5) var test = theNB5.src;
    au vu de tes explications �a resemble beaucoup � un syst�me d'onglet ou quelque chose du genre.
    j'ai pour habitude de dire que la plus part du temp on utilise getElementById alors que de simples r�f�rence font l'affaire.

    si tu nous en donne un peu plus on pourra peut �tre y voir clair.
    A+JYT

  5. #5
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    35
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 35
    Par d�faut
    Bonjour, merci pour ta r�ponse.

    d�sol� je suis un peu trop laconique =>�a marche pas voulais dire que IE8 �value l'expression mais retourne nul comme valeur pou la variable, du coup le script bloque

    Et � priori l'�l�ment recherch� existe, il est pr�sent dans le d�bogueur de IE8 (F12)
    Mais �a ressemble bien � quelque chose du type "l'element appel� n'est pas encore dans le dom" (seulement pour IE8 les autres navigateurs renvoient la valeur attendue)

    je ne pense plus que cela vienne du getElementBy(mavariable)
    J'ai test� avec du jquery r�put� compatible IE8 et �a ne marche toujours pas
    j'ai aussi test� avec d'autres fonction Java script
    En fait on dirait qu'ie8 n'arrive pas

    Ca pourrait ressembler � un syst�me d'onglet c'est un moyen de ne pas charger toute une collection d'image pr�sente dans un scroller, juste une � la demande


    voici a quoi ressemble le code Jquery qui devrait marcher

    Le JQuery

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function afficher(urlAjax){  
    /* le parmètre provient d'une fonction AJax et renvoie dans tous les cas ce que j'attends*/
    var el = $('#nb'+cpt)
    if(null != el) alert (el) // contre toute attente retourne object
    else alert("encore raté");
    var test = el.html(); // le debogueur affiche pour cette ligne  "Undefined à la valeur Null ou n'est pas un object
     
    // la suite du script
    test = test.replace(/\gris.png/g, urlAjax);
    el.html(test) ;
    // après des fonctions qui teste le chargement mais le pb et que test est null sous IE8
    }
    L' HTML
    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    <ul>
    <li><div id="nb0"><img class="cover" width="1800" height="1200" alt="un déjeuner" src="diaporama/1800/gris.png" style="width: 1663px; height: 1098px;">
    </div></li>
    <li><div id="nb1"><img class="cover" width="1800" height="1200" alt="un déjeuner" src="diaporama/1800/gris.png" style="width: 1663px; height: 1098px;">
    </div></li>
    ...
    </ul>

    Si vous souhaitez plus de code je peux d�tailler

  6. #6
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    il ne faut pas confondre jQuery et javascript

    la fonction $('#nb'+cpt) ne retourne pas un �l�ment du DOM mais un objet JQuery ce n'est pas du tout la m�me chose que getElementById qui retourne null ou un DOMElement.

    voici ce que dit la doc de jquery � propos de la fonction $
    Return a collection of matched elements either found in the DOM based on passed argument(s) or created by passing an HTML string.
    jquery te retourne donc une collection �ventuellement vide. donc lorsque tu test si la collection existe pas de pb elle existe.

    la m�thode html sur cette collection n'est la lecture du HTML d'un DOM �l�ment mais la recherche dans cette collection du premier �l�ment.
    .html()
    Get the HTML contents of the first element in the set of matched elements or set the HTML contents of every matched element.
    Dans ton cas la collection existe mais elle est vide donc l'appel � html() se solde donc par un �chec.

    A+JYT
    PS:C'est une des raisons qui font que je n'aime pas JQuery. il donne l'impressions qu'on utilse Javascript et les objet standard du W3C mais en fait il cache beaucoup de chose qui n'aide pas � la compr�ention de ce qu'on fait. pour tous les d�veloppeurs qui commence JS comprenez bien le fonctionnement du DOM et �tudiez bien l'API de JQuery avant de vous lancer dans JQuery.

  7. #7
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    35
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 35
    Par d�faut
    Merci beaucoup pour cette mise � niveau

    Donc l'objet retourn� serait vide dans ie8 mais pas dans ie9 et 10 ni firefox op�ra chrome ...

    et vu le nombre de fonctions test�es (en version jquery ou javascript), il semble bien qu'il n'y ait pas de r�ponse � ce myst�re.

    Je laisse le post ouvert encore une paire de jour au cas o� la solution apparaisse dans un de nos cerveaux.

    A+

    Patrick

Discussions similaires

  1. Sript externe src sous Internet Explorer
    Par jimmplan dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 04/04/2009, 20h21
  2. Mon onmouseover ne fonctionne pas sous IE8
    Par idamarco dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 05/03/2009, 12h35
  3. outils pour debugger sous ie8
    Par narkhor dans le forum G�n�ral JavaScript
    R�ponses: 18
    Dernier message: 03/07/2008, 22h49
  4. [DOM] popup modification de src sous Firefox
    Par SpaceFrog dans le forum G�n�ral JavaScript
    R�ponses: 24
    Dernier message: 24/06/2007, 21h19
  5. Erreur*: document.getElementById("mavariable") has no properties
    Par camyo dans le forum G�n�ral JavaScript
    R�ponses: 17
    Dernier message: 09/03/2007, 08h13

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