我已经构建了一个表单,在我的表单元素旁边放置了一个flash对象。加载页面时,表单为display:block,flash对象为display:none。
布局看起来像(img就在那里,如果用户没有flash,gif动画将会播放):
<form id="form"></form>
<div id="upload-anim-div">
<object type="application/x-shockwave-flash"
data="<?= PAL_STATIC_HOST ?>/music/introducing/flash/upload_animation.swf"
width="626"
height="600">
<param name="movie" value="<?= PAL_STATIC_HOST ?>/music/introducing/flash/upload_animation.swf"/>
<img src="<?= PAL_STATIC_HOST ?>/music/introducing/img/Anim-placeholder.gif" alt="upload animation (gif)"/>
</object>
</div>
当我提交我的表单时,只是为了上传文件,我隐藏表单并在javascript中显示我的动画div,如下所示:
$('#form').hide();
$('#upload-anim-div').show();
除了Safari之外,所有浏览器都能很好地工作,因为Safari会出现大的空白区域。右键单击此空白区域只会给我以下菜单:
Flash movie not loaded... _not clickable_
About Adobe Flash Player 10.5.blah...
为什么电影没有加载/加载?!如果我只是在文档首次加载时显示电影(通过删除最初隐藏它的javascript行),它会加载并显示正常!任何想法将不胜感激!
--- --- EDIT
我现在尝试使用swfobject,但得到完全相同的问题。我在javascript中使用了这种代码,在显示upload-anim-div之后用javascript嵌入我的swf:
swfobject.embedSWF("myContent.swf", "upload-anim-div", "626", "600", "10");
任何人都有任何进一步的想法吗?
答案 0 :(得分:1)
听起来Safari试图通过不在隐藏的div中渲染Flash来削减页面加载时间。你是如何将Flash放入div中的,它只是一个对象标签,还是你使用像swfobject这样的东西?如果您正在使用swfobject,则可以在显示时将Flash写入div。
答案 1 :(得分:1)
我认为您应该尝试使用swfobject嵌入Flash内容: