4

// 编辑:问题现在似乎仅限于 Windows 版 Safari。

大约在适用于 Windows 4 的 Safari 出现的时候,我开始听到用户说 wmode=transparent 不再在 Safari 中工作。

我已经用谷歌搜索了很多次,但没有找到任何答案。我尝试通过使用标签而不是脚本来嵌入 Flash 来减少干扰,但没有成功。

一个例子在这里: http: //hiv411.org/safari.php 在 http://hiv411.org/ 脚本交替嵌入

所有视频都使用wmode=transparent标签并通过标签嵌入。除了 Safari,在我拥有的所有浏览器中都可以正常工作。

safari.php 上的代码如下所示

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" name="test" width="289" height="263" align="middle" id="test">
<param name="allowScriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="false" />
<param name="movie" value="swfs/BBattLeft.swf" /><param name="quality" value="high" /><param name="wmode" value="transparent" /><param name="bgcolor" value="#ffffff" />
</object>

非常感谢任何帮助!

4

2 回答 2

4

更新:问题出在 windows safari 的 flash 播放器上,但在 Flash Player 版本 10.0.45.2 之后已解决

是的,它仅适用于 Windows 上的 Safari!有趣的是,互联网上没有太多关于此的文章我一直遇到同样的问题,我一开始猜想它的 bgcolor 的默认值是#FFFFFF,我尝试将其设置为透明(不是 wmode,而是 bgcolor !)。它仍然可以在所有其他浏览器中使用,但在 Safari 中它是绿色的(所以不要尝试那个!并且没有错误不是透明这个词没有被定义!我试过了!)。似乎我们必须等待苹果在下一个版本中修复它,但如果你想更改背景颜色,如果你下面只有纯色,你可以使用:

如果您使用 adobe 脚本或 javascript 来显示 flash(推荐)

<!--html-->
<script src="[adobe flash detector script]">
AC_FL_RunContent( 'wmode', 'transparent','bgcolor', 'xxxxxx');
</script>
>

否则,如果您使用嵌入和或 <noscript>:


 <param name="wmode" bgcolor="#xxxxxx" value="transparent">

...还有


 <embed wmode="transparent" bgcolor="#xxxxxx">
如果您想在 Windows 上检测 safari 并且不显示它 - 或者可能给出最少的 zindex:

//Javascript: 
var isSafari = (navigator.userAgent.indexOf("Safari") != -1) ? true : false;
var isWindows = (navigator.userAgent.indexOf("Windows") != -1) ? true : false;
if (isSafari && isWindows) document.getElementById('yourflashid').style.display = 'none';
if (isSafari && isWindows) document.getElementById('yourflashid').style.Zindex = '-1000';
> 如果您有 php,最好使用 php,因为使用 js 更改 DOM 元素会使页面加载速度变慢并且需要 javascript

<?php
//PHP
/* i like to make a .php external css style sheet
 (you have to have a transitional HTML document! 
or most browsers will not read it beacuse of difference in MIME types!)*/
function agent($browser) {
$useragent = $_SERVER['HTTP_USER_AGENT'];
return strstr($useragent,$browser);
}
       if(agent("Safari") != FALSE) {
              if(agent("Windows") != FALSE)  { // on windows
?>
#myflash {display:none;}
#verisignflash {z-index:-100; /* for example I already made #000 bgcolor for this and looks right*/
<?php } //All Safari's }

...然后是 Safari 的一般代码,因为其余部分似乎是兼容的!但是您可以在此处添加和 else 语句并将它们分开

如果有人找到更好的选择,我会很高兴在这里阅读!

于 2010-02-05T02:49:47.893 回答
1

我对 Windows 版 Safari 也有同样的问题。但是在我将 Flash Player 更新到版本 10.0.45.2 之后,问题就消失了。所以我认为这是一个 Flash 播放器的错误。

于 2010-04-12T12:38:29.630 回答