更新:问题出在 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 语句并将它们分开
如果有人找到更好的选择,我会很高兴在这里阅读!