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 :

Adapter un script au navigateur IE8


Sujet :

JavaScript

  1. #1
    Invité
    Invité(e)
    Par défaut Adapter un script au navigateur IE8
    Bonjour,

    Je travaille sur un script, mais j'ai constaté qu'il ne marche pas sur IE8 vu qu'il y a des fonctions non supportées par ce navigateur comme:
    getElementsByClassName(), addEventListener(), l'événement oninput, trim(), firstElementChild, textContent.

    J'ai changé les fonctions mais j'ai toujours des problèmes surtout ces lignes: (Les commentaires c'est pour la version IE9 et après

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //Array.prototype.push.apply(grps, this.contener.getElementsByClassName('categorieDesAptitudes'));
    		Array.prototype.push.apply(grps, this.contener.querySelectorAll('.categorieDesAptitudes')));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //  while (html = grp.contener.firstElementChild) {
               while (html = ( grp.contener.firstElementChild || grp.contener.children[0] || {}) ) {
     
                	// data = html.getElementsByClassName('item-search')[0].textContent;
                    data = (html.querySelectorAll('.item-search')[0].textContent || html.querySelectorAll('.item-search')[0].innerText);
                    grp.items.push(this.addItem(html, data, idx_g));
                }
    Pourriez vous me dire comment faire pour corriger ces bugs? Merci d'avance.

  2. #2
    Membre expérimenté
    Homme Profil pro
    bricoleur par les mots
    Inscrit en
    Avril 2015
    Messages
    720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : bricoleur par les mots
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2015
    Messages : 720
    Points : 1 607
    Points
    1 607
    Par défaut
    bonjour

    getElementsByClassName() fonctionne avec ie8

    ce code permet de rechercher un élément selon sa class il remplace querySelector

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var all_class=document.body.getElementsByClassName
     
    for(var i=0;i<all_class.length; i++){
     
       if(all_class[i]=="nom_de_la_class"){
     
          alert(all_class[i].className)
          break
       }
    }

    pour le texte il faut utiliser innerText

    al la place de addEventListener il faut utiliser attacheEvent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mon_element.attacheEvent("onclick",la_fonction)
    pour firstElementChild essai avec firstChild a voir si il y a des node texte entre deux

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour et merci beaucoup de ton aide, en fait j'ai revérifié pour le getElementsByClassName et c'est supporté à partir de ie9.

    Pour le reste, j'ai déjà fait ça mais ça n'a pas fonctionné, voici mon code sur ce lien : JsFiddle.com

    J'ai commenté les instructions de départ qui marchent avec les navigateurs récents, et je les ai remplacé par les instructions de IE8.

  4. #4
    Membre expérimenté
    Homme Profil pro
    bricoleur par les mots
    Inscrit en
    Avril 2015
    Messages
    720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : bricoleur par les mots
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2015
    Messages : 720
    Points : 1 607
    Points
    1 607
    Par défaut
    autant pour moi comme je ne cherche plus a programmer pour ie 8 du coup j'en perd


    data = (html.querySelectorAll('.item-search')[0].textContent || html.querySelectorAll('.item-search')[0].innerText);



    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
     
     
    if(typeof window.addEventListener == 'undefined'){
     
    var all_elem=document.body.getElementsByTagName(*)
     
    for(var i=0;i<all_elem.length; i++){
     
       if(all_elem[i].className=="item-search"){
     
    data=all_elem[i].innerText
          break
       }
    }
    else{
     
    data =html.querySelectorAll('.item-search')[0].textContent
     
    }
    je le fait sur le body mais on peut limiter la recherche en ciblant un élément proche de l'element cible comportant un id de plus on considere que l'element a qu'une class

Discussions similaires

  1. swf qui s'adapte en largeur au navigateur ?
    Par ze.bassman dans le forum Intégration
    Réponses: 6
    Dernier message: 07/10/2008, 15h48
  2. Besoin d'aide pour adapter un script
    Par Marshall31 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 16/05/2008, 09h18
  3. [POO] Adapter un script d'autocompletion pour plusieurs champs texte
    Par tusssss dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 14/04/2008, 17h18
  4. defi adaptation de script
    Par turpitudinix dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/12/2007, 22h07
  5. Adapter un script, pour IE et Firefox
    Par yelo31 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 15/01/2007, 23h02

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