Mozilla braucht ggf. nach der Größenänderung einen Seiten-Refresh. Wenn der Frame größer wird, schicke dem Frame also einfach noch ein reload() oder einen replace() auf sich selbst ...
reload() oder replace() kann man soweit ich weiß nur ein window - also wird das ganze wieder neu geladen,v.a. steht ja in der Datei, in der der Frameset gesetzt wird, noch der nicht geänderte Wert.
Ok hier mal ein Programmausschnitt:
<html>
<head>
<title>Demo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<frameset rows="20,24,*" frameborder="2" border="0" framespacing="0" bordercolor="#FFFFFF">
<frame name="Test" scrolling="NO" src="test_dt.htm" marginwidth="4" marginheight="4">
<frameset cols="50,*" frameborder="0" border="0" framespacing="0">
<frame name="Name" scrolling="NO" src="name.htm" frameborder="5" framespacing="0" marginheight="0" marginwidth="0" >
<frame name="Kopf" scrolling="NO" src="head.htm" frameborder="5" framespacing="0">
</frameset>
<frameset cols="200,*" frameborder="3" border="3" framespacing="2" bordercolor="#FFFFFF">
<frame name="Inhalt" scrolling="YES" src="/servlet/showInhalt?ID=00000000">
<frameset cols="*,0" frameborder="3" border="3" framespacing="2" bordercolor="#FFFFFF">
<frame name="Text" src="text.htm">
<frame name="Grafik" src="grafik.htm" frameborder="5" framespacing="0">
</frameset>
</frameset>
</frameset>
<noframes><body bgcolor="#FFFFFF">
</body></noframes>
</html>
Und hier die FUnktion, in der der Frameset auf 0 gesetzt werden soll, wenn man auf einen Button klickt - also bei Klick auf Button wird diese Funktion aufgerufen. Wenn man das 2.Mal klickt, sollte der Frameset wieder auf 235 gesetzt werden, damit man ihn sieht.
function toggleInhalt()
{
if(parent.document.getElementsByTagName("frameset").item(2).getAttribute("cols")!="0,*")
{
parent.document.getElementsByTagName("frameset").item(2).setAttribute("cols","0,*");
aktInhView = false;
}
else
{
alert(parent.document.getElementsByTagName("frameset").item(2).getAttribute("cols"));
parent.document.getElementsByTagName("frameset").item(2).setAttribute("cols","235,*"); //Syntax für Mozilla
aktInhView = true;
}
}
Unter Windows gings wie erwähnt ohne reload.