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 :

Script ne fonctionne pas sous IE


Sujet :

JavaScript

  1. #1
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut Script ne fonctionne pas sous IE
    Bonjour à tous,

    j'ai une page html qui fonctionne parfaitement sur tous les browsers sauf bien evidemment IE

    Voici la page html

    http://stessy.developpez.com/tmp/html/htmlForm3.htm

    Vous remarquerez que les input ne sont pas affichés soue IE.

    Je vous vois déjà venir, c'est quoi ce code de crade, d'amateur.
    En fait le code est créé à partir de mon application web j2ee.
    Je construis ces formulaires html depuis des xforms.

    J'en avais déjà discuté hier avec spacefrog, pour pouvoir afficher un scrollbar dans un div. Tout cela fonctionnait bien que ce soit sous FF ou IE.
    La preuve
    http://stessy.developpez.com/tmp/html/htmlForm2.htm

    Maintenant j'ai voulu appliquer ce code directement dans mon code java.
    Mais à la différence que la boucle ne se trouve pas au niveau JS mais au niveau Java, c'est pour cela que j'ai une liste pareille de document.write('...');
    Et c'est la cata concernant IE.

    Et je ne vois pas du tout pourquoi cela ne fonctionnerait pas sous IE.

    Si quelqu'un pouvait m'éclaircir un peu la situation, ce serait bien gentil

    D'avance pour vos réponses.
    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  2. #2
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Je viens d'effectuer quelques tests et il s'avère que ce code ne fonctionne pas sous IE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (i=1;i<12;i++)
    {
    largcol[i]=parseInt(document.getElementById('col'+i).offsetWidth);
    }


    Si vous avez une idée du pourquoi, elle est la bienvenue.

    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  3. #3
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut!

    Avant tout, je tiens à souligner une chose très importante et souvent oubliée des développeurs web :
    Javascript peut être désactivé par le client. Il faut d'abord créer l'architecture du site sans Javascript, sans CSS, avec uniquement du code HTML, si possible aux normes W3C, compatibles avec la plupart des navigateurs. Ensuite, on ajoute les fonctions Javascript et le CSS, le code Flash, les applets Java, etc... Pour Javascript, j'utilise la balise <noscript> pour réaliser une alternative.

    Bref, j'ai regardé la source de ta page... C'est la 1ère fois que je vois les styles déclarés avec des acollades ! Mais bon, ça fonctionne tout de même...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td id='col1' style="{font: bold 9pt Arial; width:30px ; text-align:center ; border-style:solid; border-width:thin;top:150px}">No</td>
    Citation Envoyé par Stessy
    Je viens d'effectuer quelques tests et il s'avère que ce code ne fonctionne pas sous IE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (i=1;i<12;i++)
    {
    largcol[i]=parseInt(document.getElementById('col'+i).offsetWidth);
    }
    Chez moi, ce code fonctionne sous IE :
    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
      <TABLE>
      <TR>
        <TD id="col1">No 1</TD>
        <TD id="col2">No 12</TD>
        <TD id="col3">No 123</TD>
        <TD id="col4">No 1234</TD>
      </TR>
      </TABLE>
     
      <SCRIPT type="text/javascript">
      <!--
      var largcol=new Array();
      for(i=1;i<5;i++) 
      { 
        largcol[i]=parseInt(document.getElementById('col'+i).offsetWidth); 
        document.write(largcol[i]+'<br/>');
      }
      //-->
      </SCRIPT>
    Mais à mon avis, le problème est ailleurs...
    • Que te retourne le déboggueur ?
    • Qu'est-ce qui ne fonctionne pas exactement ? Soit plus précis(e).
    De retour parmis vous après 10 ans!!

  4. #4
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Bonjour,

    je ne saurais pas être plus précis.

    Il suffit d'ouvrir le premier lien avec FF et IE pour se rendre compte de la différence.

    http://stessy.developpez.com/tmp/html/htmlForm3.htm

    Les input ne s'affichent pas dans le DIV sous IE


    Ce qui est bizarre c'est que ça fonctionne si on utilise la boucle au niveau Javascript, donc directement dans le code html, et non au niveau Java.

    Comme par exemple le deuxième exemple utilise une boucle JS et là cela fonctionne sous IE et FireFox.

    http://stessy.developpez.com/tmp/html/htmlForm2.htm

    J'ai à nouveau effectué quelques tests, et au lieu d'aller rechercher la taille du input depuis la taille de la colonne dans la table, j'inclus moi même au niveau java la taille et là les input s'affichent bien. Mais ce n'est pas une solution car le offsetwidth ne donne pas la même taille que celle que je donne. Je suppose que le offsetWidth prend en compte les paramètres tels que le cellspacing et autres.

    Voilà
    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  5. #5
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Je n'ai qu'une chose à dire: beurk. Bien fait pour toi, non mais, faire des tables avec des document.write.....

    Sinon, sur le fond, je vois pas du tout pourquoi la 2 marche et pas la 3, enfin, les mystères de l'informatique.

    Donc sur le fond, pour moi, il y a deux solutions pour t'aider:
    • Generer les colonnes après le chargement de la page (sur le onload du window ou du document). Ca marchera probablement beaucoup mieux. IE aprecie assez peu les getElementById avant la fin du chargement (pourquoi dans 3 plus que dans 2, aucune idée....). Au lieu des document.write tu devras certainement utiliser un string puis un innerHTML, mais ça peut le faire.
    • Tout ce bazar juste pour avoir un header de table fixe????? Ca se fait en CSS pur, ce qui te permettra de génerer ta table de façon bien plus facile en Java... cf http://www.imaputz.com/cssStuff/bigFourVersion.html


    Bonne chance

  6. #6
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Citation Envoyé par denisC
    Je n'ai qu'une chose à dire: beurk. Bien fait pour toi, non mais, faire des tables avec des document.write.....
    Stessy a bien précisé dès le départ que son code était dégeu... Soyons cool voulez-vous ?

    : Stessy, que veux-tu faire en fait :

    Préfères-tu persister à utiliser un code crado et bricoler un truc pour que ça marche avec IE ?
    Ou bien voudrais-tu essayer de suivre nos conseils et repartir sur de bonnes bases avec un code plus propre ?
    Parce-que là, c'est tout à refaire selon moi si tu veux mieux... sinon, je peux toujours essayer de te proposer une combine de dépannage.
    De retour parmis vous après 10 ans!!

  7. #7
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Bonjour et merci pour vos réponses.

    c'est vrai qu'un code plus propre pour le DIV serait le bienvenu.
    Je trouve cela un peu bizarre tout ce code Javascript pour afficher les input.

    Si vous avez des conseils à me donner, ils sont les bievenus.

    Pour ce qui est du code extérieur au DIV je préfère le laisser comme cela, sinon je peux recommencer le design entier de mon application, et cela va me prendre des semaines et des semaines pour tout remettre à jour.

    Disons que j'ai une semaine pour implémenter ces modifications, qu'elles fonctionnent avec tous les browser, et de savoir que les input seront gérés par des boucles au niveau Java et non au niveau JavaScript.

    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    lol Stess
    et merci pour le beurk Sub0


    Stess tu peux toujours passer par des createElements mais ça risuqe de compliquer le code...

    Je te propose une autre piste:
    Mets ta première ligne dans un div ou un li ... ?
    puis lorsque tu as besoin d'une nouvelle ligne tu fais un cloneNode true du div que tu append ensuite ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Citation Envoyé par SpaceFrog
    et merci pour le beurk Sub0
    J'ai dis beurk moi ?
    De retour parmis vous après 10 ans!!

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    ha non desolé c'était Denis
    mais bon j'assume le document.write c'est pas beau ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par SpaceFrog
    ha non desolé c'était Denis
    mais bon j'assume le document.write c'est pas beau ...
    Et moi j'assume d'être le schtroumpf grognon de l'assemblée !!

    Mais bon, document.write, c'est vraiment laid

  12. #12
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Perso, j'essaye toujours de construire mes pages sans CSS ni Javascript.
    Dans un cas comme celui-là, j'utiliserais PHP pour créer le code HTML des inputs,
    comme de toutes façons, il faut un script sur le serveur pour récupérer les saisies du formulaire...
    J'ajoute ensuite JS et CSS pour embelir et dynamiser la page, à+
    De retour parmis vous après 10 ans!!

  13. #13
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Désolé pour le retard, gastro-entérite, cloué dans mon divan deux jours

    Citation Envoyé par SpaceFrog
    lol Stess
    et merci pour le beurk Sub0


    Stess tu peux toujours passer par des createElements mais ça risuqe de compliquer le code...

    Je te propose une autre piste:
    Mets ta première ligne dans un div ou un li ... ?
    puis lorsque tu as besoin d'une nouvelle ligne tu fais un cloneNode true du div que tu append ensuite ...


    Désolé de te décevoir spafy, mais pour moi ce que tu viens de dire c'est du charabia .
    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  14. #14
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="uneligne" style="width:100%;">et ici dedans tes inputs</div>

    et dans le script ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var newline=document.getElementById('uneligne').cloneNode(true);
    newline.id='idlinge'+variableincrémentee
    document.body.appendChild(newline)
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Mon script ne fonctionne pas sous android
    Par sp2308 dans le forum jQuery
    Réponses: 4
    Dernier message: 19/08/2014, 23h20
  2. Script ne fonctionne pas sous IE check de bouton radio
    Par bastian06n dans le forum Général JavaScript
    Réponses: 29
    Dernier message: 03/08/2010, 19h30
  3. script jquery fonctionne pas sous IE
    Par bigbo26 dans le forum jQuery
    Réponses: 3
    Dernier message: 18/06/2010, 11h24
  4. différence entre ie et firefox script ne fonctionne pas sous ce dernier
    Par mika-57- dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/06/2009, 09h26
  5. Script ne fonctionnant pas sous FireFox
    Par durnambule dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/08/2008, 12h31

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