bluestraveler: Inlineframes anpassen

Hallo Zusammen,

ich habe mir eine Seite zusammengebastelt, bei der ich ein Design von einer *.html Seite benutze und den Inhalt über mehrer Inlineframes in dieses Design eingepasst habe.

Weil sich der Inhalt aber häufiger ändert, müssen sich die Inlineframes ja dynamisch der Größe der anzuzeigenden Inhaltsseiten anpassen. Dazu habe ich bisher folgendes Skript benutzt:

function ExpandFrame(fname, fname1, fname2, fname3, fname4, fname5, hideBar)
{
 if (!hideBar) hideBar = 0;

h = window.frames[fname].document.all.tags("body")[0].scrollHeight;
 w = window.frames[fname].document.all.tags("body")[0].scrollWidth;
 document.all[fname].style.height = h + hideBar;
 document.all[fname].style.width = w + hideBar;

h = window.frames[fname1].document.all.tags("body")[0].scrollHeight;
 w = window.frames[fname1].document.all.tags("body")[0].scrollWidth;
 document.all[fname1].style.height = h + hideBar;
 document.all[fname1].style.width = w + hideBar;

h = window.frames[fname2].document.all.tags("body")[0].scrollHeight;
 w = window.frames[fname2].document.all.tags("body")[0].scrollWidth;
 document.all[fname2].style.height = h + hideBar;
 document.all[fname2].style.width = w + hideBar;

h = window.frames[fname3].document.all.tags("body")[0].scrollHeight;
 w = window.frames[fname3].document.all.tags("body")[0].scrollWidth;
 document.all[fname3].style.height = h + hideBar;
 document.all[fname3].style.width = w + hideBar;

h = window.frames[fname4].document.all.tags("body")[0].scrollHeight;
 w = window.frames[fname4].document.all.tags("body")[0].scrollWidth;
 document.all[fname4].style.height = h + hideBar;
 document.all[fname4].style.width = w + hideBar;

h = window.frames[fname5].document.all.tags("body")[0].scrollHeight;
 w = window.frames[fname5].document.all.tags("body")[0].scrollWidth;
 document.all[fname5].style.height = h + hideBar;
 document.all[fname5].style.width = w + hideBar;
}

Den Verweis auf diese Funktion habe ich dann einfach auf die neuzuladenen Inhaltseiten gesetzt und schon hat alles funktioniert...
Leider funktioniert dieses Skript nur im IE vernünftig und ich hab mittlerweile schon mehrere "Beschwerden" gehört, dass Leute mit anderen Browsern den Inhalt nur abgeschnitten sehen können. Darauf hin habe ich mir den Firefox heruntergeladen um den Fehler zu analysieren. Firefox sagt:

Verwenden Sie den W3C Standard: document.GetElementbyId()

Da ich mich allerdings so gut wie gar nicht mit Java auskenne, brauche ich dringend eure Hilfe...

mfg
bluestraveler

  1. Hi!

    h = window.frames[fname].document.all.tags("body")[0].scrollHeight;
    w = window.frames[fname].document.all.tags("body")[0].scrollWidth;
    document.all[fname].style.height = h + hideBar;
    document.all[fname].style.width = w + hideBar;

    Eigentlich ist das recht einfach.

    document.getElementById() hat natürlich nichts mit Java zu tun, sondern ist ebenfalls Bestandteil von JavaScript. Es ist lediglich eine andere Art und Weise um Bestandteile eines HTML-Dokuments anzusprechen.

    • Besitzt ein HTML-Tag eine ID, sprichst du es mit document.getElementById(id) an
    • Besitzt ein HTML-Tag einen Name, sprichst du es mit document.getElementsByName(name)[nr] an
    • Man kann ein Tag auch über seinen Bezeichner ansprechen: document.getElementsByTagName(tagbezeichner)[nr]

    Ersetze deine all[]-Konstrukte, die i.d.R. nur vom IE unterstützt werden, durch eine dieser DOM-Varianten. Näheres dazu findest du hier auf SelfHTML direkt in der Beschreibung des document-Objekts (JavaScript).

    Gruß,
    Tobias