2009-10-29 5 views
0

Tous,IE6 problème avec ajuster dynamiquement la hauteur d'un div

Voici ce que j'essaie d'accomplir. J'ai un Flash SWF qui est intégré dans un DIV. En fonction des interactions de l'utilisateur avec ce fichier SWF, je souhaite ajuster dynamiquement la hauteur du fichier SWF.

Le fichier SWF lui-même mesure 1 200 pixels. Par défaut, le DIV a une taille de 690 pixels, donc la partie inférieure du fichier SWF est découpée (ce qui est le comportement que je veux). Ensuite, le DIV rétrécira ou se développera, révélant ou coupant davantage le SWF.

Voici ce que mon HTML ressemble à:

<body> 
    <div id="flash_wrapper"> 
     <div id="flash_content"> 
      This div will be replaced by an object via SWFObject 
     </div> 
    </div> 
</body> 

Voici mon CSS:

body, html { 
    margin: 0; 
    padding: 0; 
    background:#ffffff; 
} 
#flash_wrapper { 
    width:1000px; 
    height:690px; 
    margin:0; 
} 
#flash_content { 
    display: block; 
    width: 100%; 
    height: 100%; 
} 

dernier, j'ai une fonction JavaScript qui ressemble à ceci:

function updateFlashDivHeight(h) { 
    document.getElementById("flash_wrapper").style.height = h; 
} 

Le SWF appelle cette fonction JavaScript et passe le paramètre de hauteur comme "900px" et voilá! - La DIV redimensionne parfaitement. Jusqu'à présent, cela fonctionne très bien dans tous les navigateurs que j'ai testés (IE8, Firefox, Chrome, Safari), SAUF IE6. Je suis un novice en ce qui concerne cette question (CSS en particulier), donc je vais probablement faire une erreur très simple.

Merci beaucoup d'avance!

+0

Est-ce que 'h' est juste un entier ou est-ce une chaîne comme '1200px'? Ce devrait être le dernier, y compris l'unité. – Joost

+0

Joost - Merci pour votre réponse! Yup - c'est correct - je passe une chaîne comme "1200px" ou "900px", et ça marche. Juste pas dans IE6 – mattstuehler

Répondre

0

Ceci est une photo dans le noir, mais utilisez-vous LocalConnection dans votre fichier SWF pour communiquer avec votre fonction Javascript? Si oui, avez-vous vérifié que la page que vous testez n'est ouverte que dans un navigateur à la fois? LocalConnection ne fonctionnera pas correctement si la page est ouverte dans plusieurs navigateurs (ou deux fenêtres dans le même navigateur).

+0

smurfarita - merci beaucoup pour votre suggestion. Cependant, parce que cela fonctionne très bien dans tous les navigateurs que j'ai testés, je pense qu'il a quelque chose à voir avec IE6, pas Flash. En d'autres termes, il semble que Flash puisse généralement appeler la fonction JavaScript. – mattstuehler

1

Mettez une instruction d'alerte dans la routine updateFlashDivHeight. De cette façon, vous savez si cette routine a un comportement erratique - mais elle est toujours appelée, ou si votre appel à cette routine est erroné d'une façon ou d'une autre. IE6 a beaucoup de bugs, donc ça pourrait être les deux.

Au moins de cette façon, vous savez où chercher le coupable.

Désolé si cette réponse est trop évidente. En tant que programmeur fixant un problème depuis longtemps, vous oubliez parfois l'évidence. Je sais que je fais :)

Questions connexes