Hallo!
ich erinnere mich, dass innerhalb einer Funktion kein Parameter der Funktion an Timeout gegeben werden kann. Es gab hier im Forum auch eine Begründung dazu.
Also deine Kombination
function setFrameSize(h) {
...
window.setTimeout(setFrameSize(h), 1000);
funzt nicht. Offenbar wird an Timeout nur der Pointer auf h übergeben, der natürlich ins Nirwana zeigt, wenn die Funktion verlassen wurde.
Mach eine Variable h2 ausserhalb der Funktion und fülle sie mit deinem Wert. Und dann sollte window.setTimeout(setFrameSize(h2), 1000); wohl laufen.
MfG Kalle