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 :

code non compatible IE6


Sujet :

JavaScript

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Par défaut code non compatible IE6
    Bonjour,

    Voici un bout de code qui marche parfaitement sous IE7, et je ne vois pas pourquoi il ne marche pas sur IE6...

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    document.getElementById('div_previsualisation').style.display='';
    var new_frame=document.createElement('iframe');
    var src_frame="http://";
    new_frame.src=src_frame;
    new_frame.id="id_frame_previsu";
    new_frame.className='previsu';
    document.getElementById('div_previsualisation').appendChild(new_frame);
    document.getElementById('id_frame_previsu').contentWindow.location.reload(true);
    var htmlElement = document.getElementsByTagName('html')[0];
    htmlElement.style.overflow = 'hidden';
    Une idée?

  2. #2
    Expert éminent

    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('div_previsualisation').style.display='';
    Les valeurs possibles de display sont 'block', 'none' et 'inline' (par defaut).

    display='' est un hack pour IE7 qui ne reconnaissait pas 'block'
    ... enfin, me semble-t-il

    A+

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Par défaut
    J'ai modifié, mais ca ne marche pas...

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Par défaut
    Je pense que le problème vient du css...
    Car le div apparait, mais on dirait que l'iframe n'apparait pas...

    Je met le code html associé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div id="div_previsualisation" style="width:100%; height:100%; display:none; position:absolute; z-index:11000; display:none; top:0px; left:0px;">
    <div id="div_bt_previsu" style="background:#000000; align:center;"><input type="button" value="Fermer" id="bt_fermer_previsu" name="bt_fermer_previsu" onclick="ferme_previsualisation();">
    <br /></div>

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Par défaut
    J'ai essayé de supprimer la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new_frame.className='previsu';
    Et la la frame apparait, mais dans une petite taille...
    Pourquoi sur IE7, la modification de la classe marche et pas sous IE6?

    Voici la classe previsu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    .previsu{
    	width : 100%;
    	height : 100%;
    }
    Une idée du problème?

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Par défaut
    J'ai essayé de faire comme ci-apres, sans passer par une classe css, et idem, ca marche sous IE 7 et pas sous IE 6:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    new_frame.style.width='100%';
    new_frame.style.height='100%';
    ...
    Et ce que c'est a cause des pourcentages?

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Par défaut
    Encore plus bizarre!!

    Si je met un alert(' '); avant de modifier la width et height de l'iframe, ca marche!!

    Comme si l'execution allait trop vite pour interpréter!!

    C'est étrange.

    Une idée parce que la je coince vraiment!

  8. #8
    Expert éminent

    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
    Par défaut
    Citation Envoyé par calitom Voir le message
    Comme si l'execution allait trop vite pour interpréter!!
    Une piste, alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    document.getElementById('div_previsualisation').style.display='';
    var new_frame=document.createElement('iframe');
    var src_frame="http://";
    new_frame.src=src_frame;
    new_frame.id="id_frame_previsu";
    document.getElementById('div_previsualisation').appendChild(new_frame);
    document.getElementById('id_frame_previsu').className='previsu';
    document.getElementById('id_frame_previsu').contentWindow.location.reload(true);
    var htmlElement = document.getElementsByTagName('html')[0];
    htmlElement.style.overflow = 'hidden';
    D'abord la créer, puis lui affecter sa class ...

    A+

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Par défaut
    J'avais déja essayé, et je viens de réessayer, sans succès!!!

    Je comprends vraiment pas!

    A noter que dans mon css j'ai ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    iframe {
    	height: 40px;
    	width: 465px;
    }
    C'est pour ca que j'attribue une classe particulière a cet iframe car je ne veux pas qu'elle ait ces dimensions, mais qu'elle prenne toute la largeure de l'écran...

    Ca peut poser problème genre un conflit de style?...

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Par défaut
    Après 10000 ctests!!! j'ai trouvé, meme si je ne comprends pas pourquoi cette solution marche mieux que ce que j'avais fais avant!!

    Très bizarre!
    Vous aurez peut etre une explication:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var screen_w=screen.width;
    var screen_h=screen.height;
    document.getElementById('id_frame_previsu').style.width=screen_w+"px";
    document.getElementById('id_frame_previsu').style.height=screen_h+"px";

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

Discussions similaires

  1. [XL-2003] Code sur excel 2003 non compatible sur excel 2007!
    Par Patscaph dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 13/07/2014, 15h17
  2. Vue non compatible avec le code du modèle associé
    Par wassimha dans le forum Débuter
    Réponses: 0
    Dernier message: 26/08/2011, 12h36
  3. une select qui bouge et un site non compatible avec ie6
    Par keviin dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 22/10/2009, 12h44

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