【问题标题】:IE vs Other browser offsetHeight and scrollHeightIE 与其他浏览器 offsetHeight 和 scrollHeight
【发布时间】:2012-09-17 16:28:31
【问题描述】:

所以我有一个调整大小处理程序,它根据右侧是否有滚动(溢出与不溢出)来调整某些列标题的大小,以调整间距以考虑滚动。当我改变框架的大小以使框架溢出而不是溢出时,调整大小起作用。但是,当我以某种不影响帧大小的方式修改列时,我仍然需要调整大小,但调整大小会出错。这是我拥有的调整大小的 sn-p 的伪代码。

if (display != "none") {
    if (frame.offsetHeight >= frame.scrollHeight) {
        display = "none"
    }
} else {
    if (frame.offsetHeight < frame.scrollHeight) {
        display = ""
    }
}

所以问题是,在帧大小不变的情况下调用resize处理程序,在FF、Chrome和Safari中,scrollHeight比frame.offsetHeight多1(即如果offsetHeight是100px,@ 987654324@实际上是101px),但是在IE中,offsetHeight和scrollHeight是一样的,从而导致display == ""frame.offsetHeight &lt; frame.scrollHeight的条件失效。 IE 和其他浏览器的这些属性处理方式是否不同?

【问题讨论】:

  • 对所有浏览器问题的简短回答:不要使用 IE。
  • 或者,使用jQuery并支持所有浏览器,包括IE
  • 永远不要相信 IE 会做任何正确的事情。
  • 我仍然想让它工作。我现在已经进一步缩小了问题的范围。它不仅仅是 1 px,这是一个具体的例子。所以出现的问题是,如果发生溢出,IE 的 scrollheight 和 offsetheight 将是相同的。假设我在 div 中有 400px 的元素。我将框架缩小到 200px 高度。在非 IE 中,scrollHeight == 400 和 offsetHeight == 200。但是在 IE 中,scrollHeight == offsetHeight == 200 :(

标签: javascript css scroll overflow frame


【解决方案1】:

您是否尝试过通过frame.contentWindow.document.body.offsetHeight 来获得高度?内容的高度,而不是 iFrame 标签会更好地解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-19
    • 2014-03-09
    • 2016-11-23
    • 1970-01-01
    • 2014-05-05
    • 2013-08-04
    • 1970-01-01
    • 2011-08-25
    相关资源
    最近更新 更多