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 :

Javascript - DOM - IE8 - incompabilité


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Par défaut Javascript - DOM - IE8 - incompabilité
    Bonjour,

    Je rencontre un problème, pour parcourir les éléments du formulaire avec les objets DOM;
    Je n'arrive pas à exécuter ce script avec IE8, alors que ça marche avec Chrome et FireFox.

    IE8 affiche une erreur javascript permission refusé, j'ai cherché sur Internet, mais je ne trouve pas de réponse qui résou ce problème, j'ai essayé de modifé des paramètres dans l'onglet sécurité de IE, mais cela n'y fait rien.

    Mon système tourne sur XP Pro SP2.

    Voici le script est le suivant
    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
     
    <script language="javascript">
    function validerFRM(frmFORM){
    	for (var i = 0; i < frmFORM.elements.length; i++) {
    		document.writeln("<BR>Name " + frmFORM.elements[i].name); 
    	}
    }
     
     
    <form name="frmFicheParticip" method="GET" action="">
    		<!-- champ caché -->
    <input name="validerFORM" type="hidden" value="" />
    <input name="txtTest" type="text" value="" />
    <input name="chkSponsors" type="checkbox" value="val1" />
    <input name="chkSponsors" type="checkbox" value="val2" />
    <input name="chkSponsors" type="checkbox" value="val3" />
     
    <input name="bttSelectSupp" type="button" value="Supprimer" onclick="validerFRM(frmFicheParticip); " /> 						</td>
    </form>
    Est ce quelqu'un aurait la solution, je vous remercie par avance

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonsoir.
    1- N'utilise pas document.write pour créer des éléments
    Comment ajouter des éléments dans une page ?
    Si les contenues à ajouter ne sont que des textes, tu peux utiliser un div et faire un innerHTML.

    2-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript">
    et n'oublie pas de le fermer.

    A+.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Par défaut
    Bonsoir Andry.aime,

    Le code que j'ai posté, c'est juste un test, normallement c'est dans un tableau, et le fichier javascript et dans un fichier js. Mon code fonctionne parfaitement avec un Firefox et Chrome, c'est avec Internet Explorer 8, qui ne fonctionne pas, c'est ça là mon problème, il y a t'il une solution pour contourner cette incompabilité. Est ce que c'est document.write qui va faire que j'ai un message d'internet explorer en javascript et quand je clique sur le point d'exclamation Permission refusé.

    As-tu d'autre suggestion ou quelqu'un à d'autres solutions, merci...

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par défaut
    Citation Envoyé par BOLARD Voir le message
    Bonsoir Andry.aime,

    Le code que j'ai posté, c'est juste un test, normallement c'est dans un tableau, et le fichier javascript et dans un fichier js. Mon code fonctionne parfaitement avec un Firefox et Chrome, c'est avec Internet Explorer 8, qui ne fonctionne pas, c'est ça là mon problème, il y a t'il une solution pour contourner cette incompabilité. Est ce que c'est document.write qui va faire que j'ai un message d'internet explorer en javascript et quand je clique sur le point d'exclamation Permission refusé.

    As-tu d'autre suggestion ou quelqu'un à d'autres solutions, merci...
    ton code est lui-même un problème, je vais te résumer ce que fait ton code :
    tu parcours les éléments d'un <form> ça ok pas de soucis
    mais pour chaque élément de ce form, tu fais un document.write ou document.writeln. Quand tu fais un document.write.. tu écrases le dom existant par un nouveau DOM, ce qui fait que ton <form> il n'existe plus, va parcourir un élément qui n'existe plus. Donc normal que IE8 t'envoies paitre

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,
    En effet, c'est le document.write qui est le problème, crée un div et utilise innerHTML.

    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
    25
    26
    27
    <html>
    <head>
    <script type="text/javascript">
    function validerFRM(frmFORM){
        frmFORM.style.display="none";
        for (var i = 0; i < frmFORM.elements.length; i++) {
            document.getElementById('test').innerHTML+="<br />"+ frmFORM.elements[i].name;
        }
    }
     </script>
    </head>
    <body>
     
     
    <form name="frmFicheParticip" method="GET" action="">
            <!-- champ caché -->
    <input name="validerFORM" type="hidden" value="" />
    <input name="txtTest" type="text" value="" />
    <input name="chkSponsors" type="checkbox" value="val1" />
    <input name="chkSponsors" type="checkbox" value="val2" />
    <input name="chkSponsors" type="checkbox" value="val3" />
     
    <input name="bttSelectSupp" type="button" value="Supprimer" onclick="validerFRM(this.form)" />                         
    </form>
    <div id="test"></div>
    </body>
    </html>
    A+.

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Par défaut
    OK merci Andry.aime, pour ta réponse, donc je vais faire comme tu as dit, mais en fait, pourquoi ça fonctionne sur FireFox et Chrome et pas sur IE8, peut tu me donner une expliquation, pour mieux comprendre la logique. Je commence tous juste avec DOM, uniquement avec les l'objet document, windows, getElementById.... et ces méthodes basics. Je me suis pas encore penché sur innerHTML, mais je vais étudier ça. Déjà je vais tester ta solution. Ce pendant j'ai mis mon sujet sur d'autres forums, et on me dit que mon script est correcte, ça serait plutôt un problème de paramètrage de mon navigateur. Je te tiens au courant du test. Et si ça marche, je mettrait problème résolut.

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

Discussions similaires

  1. Javascript/DOM : createTextNode() et entités
    Par Jherek dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/03/2006, 16h18
  2. Javascript/DOM : problème de formulaire
    Par Jherek dans le forum Général JavaScript
    Réponses: 25
    Dernier message: 14/03/2006, 17h09
  3. [javascript/dom] Récupérer le nombre de lignes d'un tableau
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/02/2006, 11h51
  4. [javascript][dom]msxml 3 et preceding
    Par trent94 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 21/11/2005, 10h15

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