1

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

在所有主要浏览器的 Mac 版本上一切正常,但开始在 PC 上浏览,当您开始尝试通过 Flash Video embeds 显示内容时,一切都崩溃了。flash 元素在内容上保持可见。它完全无法使用。

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

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

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

4

3 回答 3

3

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

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

于 2010-03-15T04:54:07.710 回答
2

尝试将 wmode="transparent" 放在 Flash 内容的对象标记中。

于 2010-03-05T06:09:23.050 回答
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 后面。

再次感谢您提供的所有答案。

于 2010-03-15T19:40:19.467 回答