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 :

L’objet ne gère pas la propriété ou la méthode « forEach » Ie 11


Sujet :

JavaScript

  1. #1
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 129
    Par défaut L’objet ne gère pas la propriété ou la méthode « forEach » Ie 11
    Salut

    Le contexte global:
    toujours dans mes petits programmes à l'intention du monde radioamateurs.
    Le lien: Étude Morse

    Je construis toujours mes petits programmes pour Firefox, mais les utilisateurs utilisent aussi Chrome, Edge, Opera et Internet Explorer.
    Il est sous-entendu qu'ils doivent avoir la quasi dernière version de l'un de ses navigateurs.

    Pour l'instant les programmes proposés fonctionnent tant bien mieux que mal pour chaque navigateur.

    Aujourd'hui, je ne parviens pas à trouver tout seul la solution au problème sous IE 11.
    Dans le débogueur, j'ai cette alerte:
    Nom : BugIE1.jpg
    Affichages : 2815
    Taille : 83,2 Ko
    qui renvoie à:

    Nom : BugIE2.jpg
    Affichages : 2689
    Taille : 5,8 Ko
    J'avoue ne pas m'en sortir, après de multiples lectures sur ce type d'erreur lié à IE sur le net, tous signale qu'après la version 9 il ne devrait pas y avoir de problème, ben chez moi si .

    Je vous remercie de vos lumières
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  2. #2
    Membre émérite
    Femme Profil pro
    Autre
    Inscrit en
    Janvier 2017
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2017
    Messages : 340
    Par défaut
    Bonjour,
    Il faut appliquer les méthodes classiques : afficher les valeurs (même si on croit être sûr à l'avance du résultat) et aller dans les documentations.

    Affichage de valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    console.log(btnsh); //NodeList
    Donc déjà pas un Array.

    Vérification dans la documentation : querySelectorAll
    Effectivement, ça renvoie une NodeList.

    Du coup, pourquoi le forEach fonctionne sur certains navigateurs ?
    Y aurait-il une méthode forEach sur NodeList ?

    Documentation : NodeList
    On y voit effectivement une méthode forEach.

    Documentation : Node​List​.prototype​.for​Each
    On y voit : non supportée par Internet Explorer.

    Dans la documentation de NodeList, on y voit une astuce bien connue qui est d'utiliser : Array.prototype.forEach.
    Ce n'est pas très propre, mais bon, cela fonctionnera.
    Sinon, il y a un "Polyfill" dans la documentation de forEach.

    Comme quoi, il n'y avait qu'à se laisser guider par les affichages de valeurs et les documentations.

  3. #3
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 129
    Par défaut
    Merci Loralina de ces informations.
    J'ai ajouter le Polyfill dans la déclaration global et c'est

    Un polyfill est un bout de code (généralement en JavaScript sur le web) utilisé pour fournir des fonctionnalités récentes sur d'anciens navigateurs qui ne les supportent pas nativement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (window.NodeList && !NodeList.prototype.forEach) {
        NodeList.prototype.forEach = function (callback, thisArg) {
            thisArg = thisArg || window;
            for (var i = 0; i < this.length; i++) {
                callback.call(thisArg, this[i], i, this);
            }
        };
    }

    me reste plus qu'un petit problème de CSS (toujours sous IE et lui seul), mais çà, je saurai me débrouiller tout seul.

    Merci encore .
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/04/2019, 17h50
  2. Réponses: 5
    Dernier message: 20/08/2018, 18h56
  3. L’objet ne gère pas la propriété ou la méthode(IE)
    Par roukhino dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/06/2018, 11h38
  4. Réponses: 1
    Dernier message: 11/03/2013, 11h09
  5. [Jscript]Cet objet ne gère pas cette propriété ou cette méthode
    Par 1tox dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 02/06/2006, 09h19

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