2010-10-27 8 views
0

J'ai ce qui suit semble fonctionner dans Internet Explorer mais pas Chrome. Quelqu'un peut-il expliquer pourquoi, et ce que je devrais faire pour le corriger.Le style et Javascript ne fonctionnant pas

<iframe id="confirmed_list" src="./meets/confirmed.php?meet_id=$1" scrolling="no" width="80%" onload="document.getElementById('confirmed_list').height = confirmed_list.document.body.scrollHeight"> 
</iframe> 

Le script devrait automatiquement étendre la hauteur de l'iframe pour s'adapter au contenu. Internet Explorer obtient la bonne valeur, mais Chrome semble calculer la valeur massivement incorrectement.

Des idées?

Répondre

3

Prenez un autre bon coup d'oeil ce qui se passe ici:

document.getElementById('confirmed_list').height = confirmed_list.document.body.scrollHeight 

Dans ce gestionnaire d'événements, confirmed_list n'a jamais été défini. Je suis sûr que vous voulez dire document.getElementById('confirmed_list') ici.

Quoi qu'il en soit, une meilleure solution est d'utiliser this, car il fait référence à l'iframe:

this.height = this.document.body.scrollHeight 
+0

Hehe, Pekka, vous _toujours_ plus vite que je suis environ trente secondes ou plus;) – Harmen

+0

rompt à nouveau le code encore plus. OnLoad appels après que l'iframe a chargé, donc l'élément html existe? (Pardonne-moi si c'est faux) –

+0

Ugh. Chrome semble avoir * encore un autre * moyen d'accéder au contentDocument. En supprimant ma réponse, je suis trop fainéant pour faire des recherches en ce moment :) –

Questions connexes