代码之家  ›  专栏  ›  技术社区  ›  Raul Agrait

如何阻止jqueryui选项卡内的SWF重新加载

  •  5
  • Raul Agrait  · 技术社区  · 16 年前

    我在jqueryui选项卡中有一个SWF电影,我遇到的问题是,每当我从选项卡单击到另一个选项卡上,然后单击back时,SWF就会被重新加载。我可以检查DOM,看到当我单击away时,包含SWF的div仍然在DOM中,所以我不知道为什么当我单击back到选项卡时它似乎会重新加载它。

    我添加了以下CSS规则,以防止显示设置为:无,但Flash电影仍在重新加载:

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

    更新:原来这与以下几点有关 Firefox bug

    3 回复  |  直到 16 年前
        1
  •  4
  •   Jerome WAGNER    16 年前

    前面提到的解决方案可以在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;
    }
    

    这对我很有用。告诉我是否适合你! 杰罗姆·瓦格纳

        2
  •  1
  •   Jerome WAGNER    16 年前

    一些浏览器(例如firefox)会在您执行hide/show(display:none;)时重新加载flash电影在他们身上。 这就是tab系统正在发生的事情。 我所知道的唯一解决办法就是

    1. 闪光灯的位置:绝对;

    如果您想要一个多闪存的通用解决方案,这可能会变得很棘手。。

    我希望这对你有帮助

        3
  •  1
  •   Kiers_M    12 年前

    作为对公认答案的更新。在jqueryui的较新版本中,类已经更改。

    .ui-tabs .ui-tabs-hide
    

    在css中,现在需要替换为:

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

    希望有帮助