Javascript 设置显示后无法使用Flash对象方法:无

Javascript 设置显示后无法使用Flash对象方法:无,javascript,css,flash,object,youtube,Javascript,Css,Flash,Object,Youtube,这是我目前面临的情况。 我有一个嵌入式youtube视频。该对象公开javascript API以控制播放器。 对对象或包装对象的div设置display:none后,方法将变得未定义。 一旦dispay css属性设置回“block”,这些方法将再次可用。 我制作了一把小提琴来展示这个问题 我想知道为什么会发生这种情况,有没有可能监视对象的状态,看看它是否已经加载并准备好使用 谢谢你 注意:这个问题可以在Chrome中看到在IE中对我很好 我的假设是,无论你使用的是什么浏览器,它都认为通过“

这是我目前面临的情况。 我有一个嵌入式youtube视频
。该对象公开javascript API以控制播放器。 对对象或包装对象的div设置display:none后,方法将变得未定义。 一旦dispay css属性设置回“block”,这些方法将再次可用。 我制作了一把小提琴来展示这个问题

我想知道为什么会发生这种情况,有没有可能监视对象的状态,看看它是否已经加载并准备好使用

谢谢你


注意:这个问题可以在Chrome中看到在IE中对我很好

我的假设是,无论你使用的是什么浏览器,它都认为通过“优化”这些东西是聪明的。那个闪光物体是隐藏的吗?嗯,你不可能想用它做任何事,不可能。[/讽刺]

我建议将元素移出屏幕,而不是隐藏它:

#elem {
    position: fixed;
    right: 100%;
}

使用NPAPI插件(即不是Internet Explorer)时会发生这种情况。您可以将项目移出屏幕(需要
显示:绝对
/
显示:相对
),或者将flash对象设置为包含html元素的100%大小,并将该元素的高度或宽度设置为.01px。不要使用
$(elem).fadeOut
,因为在动画结束时,jq设置
显示:无
。而是使用
$(elem).fadeTo
,它不会改变其他css属性。还需要添加一个新参数

<param name="wmode" value="transparent">

使淡入淡出动画工作


抱歉:我忘了提到这个问题可以在Chrome(以及其他浏览器)中看到。不幸的是,Chrome以做类似的事情而闻名。