Gonzo: iframe-Anpassung funktioniert nicht im IE

Beitrag lesen

Ich stochere jetzt mal im Nebel rum:

function pruefe() {
   if(document.all&&!window.opera) {
     var a=document.all.detail;
     detail.document.body.scroll='no';

Ist detail im IE hier schon definiert? Ich glaube nicht, sonst könnten wir doch auf die Zeile mit dem a davor verzichten, da steht detail nämlich auch drin.
Außerdem wird hier <body> bearbeitet und in der analogen Zeile im nächsten Block stattdessen …

} else {
     var a=document.getElementsByName('detail')[0];

document.getElementById('detail')

a.scrolling='no';

… <iframe>. Ist mir nicht klar.

}
   var a=document.getElementsByName('detail')[0];

Überflüssige Zeile, a ist schon gesetzt.

detail.document.getElementsByTagName('body')[0].style.overflow='hidden';

Oben wird noch so ein Aufwand betrieben, um das IE-eigene document.all zu benutzen statt einer getElement-Funktion, und hier soll's plötzlich kein Problem mehr sein?

var b=detail.document.getElementById('cont');

Im Zieldokument stecken fehlerhafterweise zwei Elemente mit der ID cont. Aber davon abgesehen täte ich gleich auf <body> zurückgreifen, da ist wenigstens sicher, dass das immer vorhanden bleibt.

if(a.style.height != eval(b.offsetHeight+35)+'px') {

Auch überflüssig, sage ich jetzt mal, denn dass das beides gleich ist, dürfte seltenst passieren, entsprechend selten wäre Rechenaufwand einzusparen.

a.style.height=eval(b.offsetHeight+35)+'px';

Und wozu das eval(), wo eval() doch evil ist?

}
}

Alles in allem, ganz grob und ohne einen Schimmer, ob das funktioniert:

  
function pruefe() {  
   var iframename = 'detail';  
  
   if (document.getElementById) {  
       var a = document.getElementById(iframename);  
       var b = a.document.getElementsByTagName('body')[0];  
       a.scrolling = 'no';  
   }  
   else if (document.all && !window.opera) {  
       var a = document.all[iframename];  
       var b = a.document.tags['body'][0];  
       b.scroll = 'no';  
   }  
   else {  
       return;  
   }  
  
   b.style.overflow = 'hidden';  
   a.style.height = (b.offsetHeight + 35) + 'px';  
}  

"Dieser Fehler wird in den nächsten Tagen behoben."

Da schreibst du doch sicher noch "wird vom SELFHTML-Forum behoben".