3

したがって、スクロールを考慮して間隔を調整するために、右側にスクロールがあるかどうか (オーバーフローとオーバーフローではない) に応じて、いくつかの列ヘッダーのサイズを変更するサイズ変更ハンドラーがあります。フレームのサイズを変更してフレームをオーバーフローさせたり、オーバーフローさせないようにしたりすると、サイズ変更が機能します。ただし、フレーム サイズに影響を与えない方法で列を変更している場合でも、サイズ変更が必要ですが、サイズ変更でバグが発生します。サイズ変更のスニペットの疑似コードを次に示します。

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.scrollHeightto は失敗します。これらのプロパティは、IE とその他のブラウザーで異なる方法で処理されますか?

4

1 に答える 1