【问题标题】:Triggering the refresh event in Internet Explorer在 Internet Explorer 中触发刷新事件
【发布时间】:2010-02-14 05:33:35
【问题描述】:

在我的一个动态网站上,我遇到了以下问题:

在 Internet Explorer 6 中,在借助 JavaScript 更改 div 元素的大小后,其高度为 100% 的子元素不会立即刷新(即,不会拉伸到新的大小),但只有当单击父 div。在我看来,该文件需要一些更新。我想问一下是否有某种命令(如 Flash 中的命令)在发生一些动态更改后更新文档?简而言之,如何解决这个问题?

【问题讨论】:

  • 欢迎来到 Stack Overflow。你认为你可以从你的 HTML 和 JavaScript 代码中添加一个小例子吗?
  • 我不这么认为。因为它不会那么小。我只是想可能有人也遇到过类似的问题。它只发生在 IE6 中,目前我知道的唯一解决方法是不依赖百分比来设置高度,而是动态设置以像素为单位的高度。虽然它对我有用,但在代码美感上看起来有点丑。

标签: javascript css internet-explorer


【解决方案1】:

在 IE6 中要求重排是一个非常常见的问题,它具有大量的 CSS/JS 基础。通常,您所要做的就是更改需要回流的元素上的参数,例如,设置 display:none 然后返回。这将导致浏览器在当前对象中和周围重排对象。大多数情况下,您必须通过 JavaScript 来完成。如果您不想显示,请尝试更改高度/宽度或添加/删除流或清除参数。它们都会导致页面重排。
但是,大多数情况下,如果您在 IE6 中遇到重排问题,这通常意味着您的页面上的 CSS 太多,或者您将 CSS 用于不应该用于的事情(例如在HTML 中以错误顺序排列的页面,即 HTML 中的 element1、element2、element3;显示中的 element2、element1、element3)。我建议清理你的 CSS,大多数情况下,重排问题会消失。

【讨论】:

    【解决方案2】:

    如果你必须点击它来刷新,那为什么不尝试在大小更新后模拟点击。 Simulating mouse clicks in JavaScript

    【讨论】:

      【解决方案3】:

      我知道我已经被烧毁了(不幸不止一次)为 ajax 响应返回了无效的 xml。尤其是 IE 在这方面非常不宽容。为了确定,可能值得验证响应。在我的某些情况下,糟糕的 XML 导致 JS 失败并且“似乎无法正常工作”。

      【讨论】:

        猜你喜欢
        • 2010-12-23
        • 1970-01-01
        • 1970-01-01
        • 2011-09-30
        • 1970-01-01
        • 2011-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多