したがって、スクロールを考慮して間隔を調整するために、右側にスクロールがあるかどうか (オーバーフローとオーバーフローではない) に応じて、いくつかの列ヘッダーのサイズを変更するサイズ変更ハンドラーがあります。フレームのサイズを変更してフレームをオーバーフローさせたり、オーバーフローさせないようにしたりすると、サイズ変更が機能します。ただし、フレーム サイズに影響を与えない方法で列を変更している場合でも、サイズ変更が必要ですが、サイズ変更でバグが発生します。サイズ変更のスニペットの疑似コードを次に示します。
if (display != "none") {
if (frame.offsetHeight >= frame.scrollHeight) {
display = "none"
}
} else {
if (frame.offsetHeight < frame.scrollHeight) {
display = ""
}
}
したがって、問題は、フレーム サイズが変更されていないときにサイズ変更ハンドラーが呼び出されると、FF、Chrome、および Safari では、scrollHeight が 1 よりも大きいframe.offsetHeight
(つまりoffsetHeight
、100px の場合、scrollHeight
実際には 101px である) ことですが、IE では、offsetHeightと scrollHeight は同じであるため、条件 whendisplay == ""
とframe.offsetHeight < frame.scrollHeight
to は失敗します。これらのプロパティは、IE とその他のブラウザーで異なる方法で処理されますか?