如何让Flash播放器在PC上的内容下显示?

时间:2010-03-05 05:39:05

标签: css windows flash tumblr

长话短说,我正在为博客开发一个主题模板,使您能够以块的形式查看帖子。首先显示帖子的主要部分,然后当您将鼠标悬停在帖子块上时显示辅助内容。

所有主流浏览器的Mac版本都能正常运行,但开始在PC上浏览,当你开始尝试通过Flash Video嵌入显示内容时,一切都会崩溃。 flash元素在内容上仍然可见。它完全无法使用。

在PC上,您可以在此处查看问题示例:http://photorific.tumblr.com

我几乎可以肯定这是Windows Flash插件中的一个错误,但我想知道是否有其他人之前遇到过此问题,以及是否有任何解决方案。

这个问题已经出现了一段时间,任何帮助都会真的非常非常感谢!

3 个答案:

答案 0 :(得分:3)

这是Windows上Flash Player中的一个已知错误。它基本上忽略了任何形式的z-index,或假设flash对象位于z-index:+ INFINITY。无论哪种方式,都有两个修复。如前所述,您可以使用wmode = transparent param,但这会让其他内容通过flash影片流失。另一种选择是在Flash影片和要在Flash影片上显示的任何内容之间使用IFRAME垫片。

MooTools有一个名为IframeShim的插件,可以自动为您执行此操作。如果没有可用于jquery的等效函数,我会感到惊讶。

答案 1 :(得分:2)

尝试将wmode =“transparent”放入flash内容的object标记中。

答案 2 :(得分:1)

感谢您的回复。 @Marc,很高兴知道我不会发疯。

我确实发现设置窗口模式属性,Tumblr在输出视频代码时不会本地工作,但工作正常....但它必须是opaque而不是transparent

使用原始视频字符串(<object><params /><embed /></object>),这是我提出的解决方案,对我来说非常有用:

/*  Add wmode = opaque
-------------------------------------------------------*/
if( ! player.match(/name="wmode"/))
    player = player.replace(/<param/, '<param name="wmode" value="opaque" /><param');

if( ! player.match(/wmode="(transparent|opaque)"/))
    player = player.replace(/\/><\/object>/, 'wmode="opaque" /></object>');

player = player.replace('wmode="transparent"', 'wmode="opaque"');
player = player.replace('name="wmode" value="transparent"', 'name="wmode" value="opaque"');

现在,只要启用了javascript,Windows上的Flash视频就会很好地位于所需的div之后....

再次感谢您的回答。