【问题标题】:How do I prevent a swf from refreshing when an iframe is resized?调整 iframe 大小时,如何防止 swf 刷新?
【发布时间】:2010-10-02 17:57:12
【问题描述】:

我正在调整 iframe 的大小,当我在 Firefox 中这样做时,内容会刷新。

我有一个扩展的 swf,在 Firefox 中,当 iframe 扩展以容纳 swf 时,该 swf 出现在其正常位置。

在 IE 中不会发生这种情况。

有人知道如何防止 Firefox 发生刷新吗?

谢谢


编辑:

好的,我认为页面没有被刷新,只是 swf 请在以下位置查看:

http://antoniocs.org/iframe/index_.html

您可以看到,在 Firefox 3 中进行重新尺寸调整时会出现快速“闪烁”,并且 swf 会返回其初始状态(未展开),而在 IE 中不会发生这种情况。

代码都是客户端的,所以如果你查看页面的源代码,你可以查看它。

【问题讨论】:

  • 请提供示例页面 URL 来说明您的意思。调整大小通常不应该重新加载任何内容 - 除非你包含一个非常古老和陈旧的 Netscape 4 错误修复脚本,我希望你不在这个时代。
  • 这里是测试页-> antoniocs.org/iframe/index_.html

标签: javascript firefox iframe flash refresh


【解决方案1】:

似乎设置position: absolute;.cssText都会刷新框架。

解决方案是将style="position: absolute;" 添加到您的<iframe> 并像这样设置您的css:

this.mrec_div_idObj.style.left = ((offsetLeftIframe) - (dimX - disX)) + "px";
this.mrec_div_idObj.style.top = (offsetTopDiv - disY) + "px";
this.mrec_div_idObj.style.zIndex = 99999999;
this.mrec_div_idObj.style.margin = 0;
this.mrec_div_idObj.style.padding = 0;

我已经对此进行了测试,它适用于 Firefox 3

【讨论】:

    【解决方案2】:

    Antonio,恐怕问题出在 Firefox 中。当 Gecko 检测到 iFrame 的宽度发生变化时,它会重新绘制页面并导致“刷新”。除了使用不同的技术,我知道没有办法改变这种行为。

    我确认其他基于 Gecko 的浏览器也存在该问题(特别是 Camino 和 Flock)。我无法在基于 WebKit 的浏览器(Chrome 和 Safari)中复制它。

    【讨论】:

      【解决方案3】:

      这里是可以看到代码的页面->http://antoniocs.org/iframe/index_.html

      调整 iframe 大小的代码在 3 秒后运行,您可以看到 swf(如果已扩展)以初始(未扩展)形式出现。

      要扩展 swf,只需将鼠标悬停在其上即可。

      在ie中iframe没有刷新。

      【讨论】:

        【解决方案4】:

        没有onresize代码。

        很简单!我有一个宽度为 300 和高度为 250 的 iframe,当我将它们更改为 500 和 400 时,Firefox 会刷新内容,我想防止这种情况发生。

        【讨论】:

        • define "refresh" - 如果你调整任何给定浏览器的大小,任何给定的浏览器都会重新绘制它,并且 afaik 没有办法阻止它(你为什么会这样?)但如果你说 FF 字面上刷新,即重新请求内容,可能有问题
        • 确实如此。它不应该刷新,也不在我的测试用例中。需要演示问题的示例代码。
        猜你喜欢
        • 2014-04-02
        • 1970-01-01
        • 2011-10-01
        • 2017-06-20
        • 2012-12-17
        • 1970-01-01
        • 1970-01-01
        • 2011-03-21
        • 1970-01-01
        相关资源
        最近更新 更多