以下のような形でフォームを作成し、window.onload において、一部フォームの非表示処理を実施したところ、非表示処理前のフォームのheightに依存して、windowの長さが長いままになってしまいました。
IEでは、どうやらレンダリング時にwindowの長さが調整されている模様です。
ご回答宜しくお願いいたします。
<script type="text/javascript" src="http://www.prototypejs.org/assets/2007/6/20/prototype.js"></script>
<form>
<fieldset id="aaa">
<input type="checkbox" value="aaa">aaa
<input type="checkbox" value="aaa">aaa
<input type="checkbox" value="aaa">aaa
</fieldset>
<fieldset id="bbb">
<input type="checkbox" value="bbb">bbb
<input type="checkbox" value="bbb">bbb
<input type="checkbox" value="bbb">bbb
</fieldset>
<fieldset id="ccc">
<input type="checkbox" value="ccc">ccc
<input type="checkbox" value="ccc">ccc
<input type="checkbox" value="ccc">ccc
</fieldset>
<input type="submit">
</form>
<script type="text/javascript">
disableOne = function(target) {
target = $(target);
Element.getElementsBySelector(target, 'input, select, textarea').each(function(obj) {
obj.disabled = true;
});
target.style.display = 'none';
}
window.onload = function() {
disableOne("bbb");
disableOne("ccc");
}
</script>
ばっちり解決しました。
他のエントリーでも見たのですが、Window.onload()時のJavascript発火タイミングに問題があるということなのですね。
どうもありがとうございました。