在jQuery加载后动态重新加载swfObject函数

时间:2011-03-11 06:53:41

标签: jquery ajax load swfobject

我正在尝试使用jQuery的load()函数来引入一些动态内容(我没有太多控制权),并且在该内容中,有swfObject调用。

由于某种原因,jQuery不执行这些swfObject调用。它只显示“No Flash”内容。有没有办法重新触发swfObject再次破解?

2 个答案:

答案 0 :(得分:0)

您正在为标签下方加载的内容使用两个不同的容器:

<div class="post-container news-posts"></div>

<div id="othernews" class="post-container"></div>

第一个最初填满了内容。 现在,单击“A / V”选项卡不会刷新此容器,而只是隐藏它并将新鲜内容加载到第二个容器中(#othernews)。

现在,您的swfobject调用如下:

swfobject.embedSWF("http://www.youtube.com/v/iFm9v0wvEnw&amp;color1=0x000000&amp;color2=0x333333&amp;rel=1&amp;fs=1&amp;showsearch=0&amp;showinfo=1&amp;hd=1", "vvq-8663-youtube-1", "604", "367", "9", vvqexpressinstall, vvqflashvars, vvqparams, vvqattributes);

正如您所看到的,您正在尝试将swf加载到ID为vvq-8663-youtube-1的元素中,但是这样的元素已经存在于dom中,位于第一个容器(.news-posts)中,但是在ajax加载之后,它也可以在第二个容器中使用。你当然知道不允许有两个具有相同id的元素,并且会破坏你的swf插入。

我建议使用一个容器来保存标签的内容。这不仅可以解决您的swfobject问题,还可以免费获取浏览器资源。

答案 1 :(得分:0)

我找到了解决方案...... 我可以在另一个swf(Master Swf)上加载(和卸载)一个或多个swf 不同swf与 localConnection 函数之间的简单通信。 然后你可以使用简单的内部加载器作为MovieClipLoader或者你需要的任何东西。

然后,如果我需要它,我可以使用 ExternalInterface 与javscript通信Flash。 有了这两种方式,我根本不需要(通常)通过swfObject,这是非常好的