这是我目前面临的情况。我有一个嵌入的 youtube 视频作为<object>
. 该对象公开了 javascript API 来控制播放器。将 display:none 设置为对象或包装对象的 div 后,方法变得未定义。一旦将显示 css 属性设置回“块”-这些方法再次可用。我创建了一个 Fiddle 来展示这个问题。
我想知道为什么会这样,是否可以监控对象的状态并查看它是否已经加载并准备好使用?
提前谢谢!
注意:问题可以在 Chrome 中看到
在 IE 中对我来说效果很好。
我的假设是,您使用的任何浏览器都认为通过“优化”东西而变得聪明。那个 Flash 对象被隐藏了?好吧,你不可能想用它做任何事情,没办法。[/讽刺]
我建议将元素移出屏幕而不是隐藏它:
#elem {
position: fixed;
right: 100%;
}
使用 NPAPI 插件(即不是 Internet Explorer)时会发生这种情况。您可以将项目移出屏幕(需要display:absolute
/ display:relative
),或者将 flash 对象设置为包含 html 元素的 100% 大小,并将该元素的高度或宽度设置为 0.01px。不要使用$(elem).fadeOut
,因为在动画结束时, jq 设置了display:none
. 而是使用$(elem).fadeTo
which 不会改变其他 css 属性。还需要添加一个新参数
<param name="wmode" value="transparent">
让淡入淡出动画工作。