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 :

IE et .style.display = 'block' ;


Sujet :

JavaScript

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Points : 264
    Points
    264
    Par défaut IE et .style.display = 'block' ;
    Bonjour,

    J'ai un soucis avec du code JavaScript qui marche avec tous les navigateurs mais pas avec IE8.

    J'ai une DIV qui est fixé à none dans sont display:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div id="DIV_delete_page" style="display:none;">
    <table id="TABLE_Delete" width="100%" border="0" cellspacing="0" cellpadding="0" style="Z-INDEX:20; visibility:hidden; position:absolute; padding:0px; " >
      <tr>
         <td>
    Le contenu du tableau...
         </td>
      </tr>
    </table>
    </div>
    Puis le code JavaScript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function JS_show_delete() {
      document.getElementById('DIV_delete_page').style.display = 'block' ;
      document.getElementById('TABLE_Delete').style.visibility = 'visible' ;
    }
    Mais voila, le tableau apparait bien au bon endroit avec Firefox, Chrome et Opera mais pas avec IE8 qui ne fait rien, je n'ai meme pas de message d'erreur, donc je ne sais pas si IE n'interprète pas style.display ou le style.visibility ou place le tableau a un endroit que je ne peux pas voir...

    Vous avez une idée ?

    Merci,
    Vincent.

  2. #2
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bonjour,

    En IE7, ça passe. :-/

    Essayez peut-être:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('DIV_delete_page').style.display = 'inline' ;

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Points : 264
    Points
    264
    Par défaut
    Citation Envoyé par vermine Voir le message
    Bonjour,

    En IE7, ça passe. :-/

    Essayez peut-être:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('DIV_delete_page').style.display = 'inline' ;
    Apparemment c'est le position:absolute; du <table que IE ne gère pas comme les autres !
    Pfff, je ne sais pas quoi faire

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par defacta Voir le message
    Apparemment c'est le position:absolute; que IE ne gère pas comme les autres !
    Oui, enfin d'un côté il a raison
    En position absolute, ton élément sort du flux : il n'est pas "vraiment" dans ton div (tu devrais le retrouver en haut et à gauche de ta page, a priori) ...
    Tu devrais l'enlever car je doute qu'il apporte quelque chose (à part ce problème).
    De même, rendre invisible une table située dans un div masqué n'est pas des plus utile

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Points : 264
    Points
    264
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Oui, enfin d'un côté il a raison
    En position absolute, ton élément sort du flux : il n'est pas "vraiment" dans ton div (tu devrais le retrouver en haut et à gauche de ta page, a priori) ...
    Tu devrais l'enlever car je doute qu'il apporte quelque chose (à part ce problème).
    De même, rendre invisible une table située dans un div masqué n'est pas des plus utile

    A+
    bof bof bof IE8 a raison !
    Parce que ca marchait très bien avec tous les autres navigateurs et maintenant j'ai été obligé de déplacer le tableau pour que ça marche avec IE, mais en le déplaçant il ne se trouve plus maintenant à la bonne position x, donc faudra que je le déplace en JavaScript pour le mettre au bon endroit...

    IE, c'est comme ça: quand on a du temps à perdre...

  6. #6
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Sinon, vous pouvez utiliser les commentaires conditionnels mais il y aura sans doute également un traitement à faire.

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par defacta Voir le message
    IE, c'est comme ça: quand on a du temps à perdre...
    Non, cette fois-ci tu ne peux t'en prendre qu'à toi : un position:absolute n'avait rien à faire ici (ajoute un top:0 et left:0 pour t'en convaincre).

    Je suis le premier à critiquer les spécificités d'IE, mais ce n'est pas une raison pour tout lui mettre sur le dos

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Points : 264
    Points
    264
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Non, cette fois-ci tu ne peux t'en prendre qu'à toi : un position:absolute n'avait rien à faire ici (ajoute un top:0 et left:0 pour t'en convaincre).

    Je suis le premier à critiquer les spécificités d'IE, mais ce n'est pas une raison pour tout lui mettre sur le dos

    A+
    Oui, c'est un peu vrai pour cette histoire de position:absolute, ca n'avait rien à faire ici mais ca m'éviter d'avoir à ajouter cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      document.getElementById('DIV_delete_page').style.top = document.getElementById('TR_menu_page').scrollHeight + 1 ;
    Et là, le +1, c'est spécial pour IE, sinon IE n'affiche pas la bordure de 1px juste avant la div "DIV_delete_page".

    Mais j'ai mieux pour IE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      var url_tab = url.split(/\#/) ;
      if(IsIE) {
        var i = 0 ;
      } else {
        var i = 1 ;
      }
      if(url_tab[i]) {
        etc...
    En effet, ca bug avec IE qui apparement commence url_tab à 1 alors que tous les autres Nav le commençait à 0, normal...en informatique, on commence à compter à partir de 0, pas à partir de 1...

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par defacta Voir le message
    En effet, ca bug avec IE qui apparement commence url_tab à 1 alors que tous les autres Nav le commençait à 0, normal...en informatique, on commence à compter à partir de 0, pas à partir de 1...
    IE commence aussi à compter à partir de 0

    La différence doit plutôt venir du contenu de url_tab : est-il le même sous IE et ailleurs ?

    EDIT : et "en informatique", non : en Javascript, entre autres. Mais Oracle par exemple commence à 1

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

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

Discussions similaires

  1. style.display block, none.. IE et firefox
    Par zevince dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 03/08/2006, 15h14
  2. [CSS] Pb avec les display:block ..
    Par sokette dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 10/12/2005, 13h17
  3. [W3C] Problème avec la balise div et le style "display:none&a
    Par Golork dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 14/11/2005, 20h30
  4. [html+css] problème menu avec liens display:block
    Par Cypselos dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 28/08/2005, 09h39
  5. Pb style display avec Firefox mal appliqué
    Par frochard dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/07/2005, 23h48

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