Framebreite ändern
Liza
- javascript
Hallo,
gibt es mit JS die Möglichkeit auf die jeweiligen Spaltenbreiten (also die cols) eines Framesets zuzugreifen? Also: linker Frrame wird breiter, rechter Frame entsprechend schmaler. Bin für jeden Tipp dankbar.
Um es vorweg zu sagen: Bitte keine Diskussion über Sinn und Zweck von Framesets und Javascript. ;-)
Ciao
Liza
Jup, gibt es:
Gib dem Frame eine ID, dann kannst du mit
var f = document.getElementById("frameid");
f.style.width = ...
seine Breite setzen.
MfG
Rouven
Hallo,
Gib dem Frame eine ID, dann kannst du mit
var f = document.getElementById("frameid");
f.style.width = ...
Danke, hab ich mir zunächst auch gedacht, funktionierte aber nicht.
Wahrscheinlich spreche ich den Frame verkehrt an.
Ich rufe in meiner Hauptseite einen Iframe auf; dieser IFrame widerum läd ein Frameset mit 2 Spalten.
Ich möchte von der Hauptseite nun die beiden Framesetspalten mit JS verändern.
Meine Idee war nun:
top.nameIframe.document.getElementById("frameid").style.width = "120px";
Funktioniert aber irgendwie nicht. Wo steckt mein Fehler?
Ciao
Liza
Hi,
uuuii, noch mit iframe - das ist natürlich schwierig, da kenn ich mich mit der frame-document-Hierarchie nicht so aus, also was da wo liegt.
Hast du mal testweise versucht, die Funktion in dem iframe einzubauen und dann zunächst von außen aufzurufen? Also
<iframe name="iView" src="xyz.htm" ...>
xyz.htm
function resizeFrames() {
...
}
und dann in der Hauptdatei
document.iView.resizeFrames();
Wenn das klappt, kannst du ja mal weiter rumprobieren...
MfG
Rouven
Hallo,
ich hab mal 'nen einfachen Testframeset gebaut, bei dem sich aber leider auch nichts tut. :-(
Beispiel:
<html>
<head>
<script language="JavaScript">
function test ()
{ document.getElementById('id1').style.width = '600px'; }
</script>
</head>
<frameset onload="test ();" cols="200,*">
<frame id="id1" src="Unbenannt1.html">
<frame id="id2" src="Unbenannt2.html">
</frameset>
</html>
Müsste sich hier nicht der Linke Frame automatisch auf 600px einstellen?
Ciao
Liza
Oh,
sorry, intuitives vs. praktisches Handeln. Was funktionieren müsste ist:
<frameset id="fset">
...
</frameset>
Und dann
var f = document.getElementById("fset");
f.cols="600, *";
MfG
Rouven
Nachtrag:
var f = document.getElementById("fset");
f.cols="600, *";
Vielleicht wäre
f.setAttribute("cols", "600, *");
etwas konformer mit dem W3C...
MfG
Rouven
Hey, danke!
Klappt beides. Auf der Basis werd ich's auch für mein iFrame/Frame-Konstruktion hinkriegen.
Hast mir viel geholfen!
Ciao (und gute Nacht)
Liza