如何在重新加载的jQuery UI选项卡中停止SWF

时间:2010-04-09 21:14:38

标签: jquery flex jquery-ui jquery-ui-tabs

我在jQuery UI选项卡中有一个SWF电影,而我遇到的问题是,每次我从标签上点击另一个标签时,SWF都会重新加载,然后再点击返回。我可以检查DOM,看到当我点击时,包含SWF的div仍然在DOM中,所以我不知道为什么当我点击返回标签时它似乎重新加载它。

我添加了以下CSS规则以尝试阻止将显示设置为:none,但Flash影片仍在重新加载:

.ui-tabs .ui-tabs-hide {
    display: block !important;
    position: absolute;
    left: -10000px;
}

更新:事实证明这与自2001 / Firefox 0.9以来一直存在的以下Firefox bug有关。然而,我仍然没有一个好的解决方法。

3 个答案:

答案 0 :(得分:4)

前面提到的解决方案适用于Chrome,但无论出于何种原因都不适用于Firefox(我很确定它在前一段时间内正在运行)。我找到了另一个解决方案:

首先,您需要一个通用规则来“隐藏”内容,而不使用display:none;

/** hide the tab without using display:none; **/
.ui-tabs .ui-tabs-hide {    
display: block !important;
height: 0!important;
width: 0!important;
border:none!important;
visibility:hidden!important;

}

/** make sure your swf does not have leftover height when hidden **/
.ui-tabs .ui-tabs-hide object,
.ui-tabs .ui-tabs-hide embed {
    height: 0;
    width: 0;
}

它对我有用。告诉我,如果适合你! 杰罗姆·瓦格纳

答案 1 :(得分:1)

有些浏览器(例如firefox)会在您对其进行隐藏/显示(display:none;)时重新加载Flash电影。 这是标签系统正在发生的事情。 我所知道的唯一解决方案是

  1. 闪光的位置为:绝对;
  2. 收听标签系统的事件
  3. 确保在显示/隐藏选项卡时移动和移出屏幕视图
  4. 如果你想要一个多闪存的通用解决方案,这可能会变得棘手......

    我希望这会对你有所帮助

答案 2 :(得分:1)

就像接受答案的更新一样。在较新版本的jQuery UI中,类已经发生了变化。

.ui-tabs .ui-tabs-hide
css中的

现在需要替换为:

.ui-tabs .ui-tabs-panel[aria-hidden="true"]

希望有所帮助