molily: iframe-Anpassung funktioniert nicht im IE

Beitrag lesen

Hallo,

if (document.getElementById) {
       var a = document.getElementById(iframename);
       var b = a.document.getElementsByTagName('body')[0];

Im Firefox haben iframe-Elementknoten keine Eigenschaft »document«, siehe </archiv/2006/8/t134560/#m873073>.

Besser:
var body = iframe.contentDocument || iframe.document;

Und dann einfach .body anstatt dieser Wurschtelei. Das body-Element ist immer unter document.body verfügbar.

a.scrolling = 'no';
   }
   else if (document.all && !window.opera) {

Opera kann getElementById genauso lange wie document.all, also kann man das hier weglassen, weil er in den ersten Teil einsteigen wird.

var a = document.all[iframename];
       var b = a.document.tags['body'][0];

document.body, siehe oben.

Andererseits kann man IE-4-Unterstützung auch einfach weglassen...

function pruefe() {  
   var iframename = 'detail';  
   if (!document.getElementById) return;  
  
   var iframe = document.getElementById(iframename);  
   var body = iframe.contentDocument || iframe.document;  
  
   iframe.scrolling = 'no';  
   iframe.style.height = (body.offsetHeight + 35) + 'px'; // vielleicht eher scrollHeight  
   body.scroll = 'no'; // ist auch unnötig, glaube ich, wenn man eh overflow:hidden setzt  
   body.style.overflow = 'hidden';  
}

Mathias