4

// 編集: この問題は現在、Windows の Safari に限定されているようです。

Windows 4 用の Safari が登場した頃、Safari で wmode=transparent が機能しなくなったという声をユーザーから聞き始めました。

私はこれを何度もグーグルで検索しましたが、答えはありませんでした。スクリプトではなくタグを使用して 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 サファリ用の Flash Player にありますが、Flash Player バージョン 10.0.45.2 以降では解決されています。

はい、Windows の Safari のみです。そして興味深いのは、これについてインターネット上であまり書かれていないことです。私は同じ問題を経験しています。最初は、bgcolor のデフォルト値が #FFFFFF であると推測し、それを透明 (wmode ではなく bgcolor) に設定しようとしました!)。他のすべてのブラウザではまだ動作しますが、Safari では緑色でした (それを試してはいけません! 透明という言葉が定義されていないというバグではありません! 私は試しました!)。Apple が次のバージョンで修正するのを待つ必要があるようですが、背景色を変更したい場合は、下に単色しかない場合に使用できます。

Adobe スクリプトまたは JavaScript を使用してフラッシュを表示している場合 (推奨)

<!--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でサファリを検出して表示したくない場合-または、最小の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 を使用している場合は、js で DOM 要素を変更するとページの読み込みが遅くなり、javascript が必要になるため、php で行うことをお勧めします。

<?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のコードです! ただし、ここに and else ステートメントを追加して、それらを区切ることができます

誰かがより良いオプションを見つけたら、ここでそれを読んでうれしいです!

于 2010-02-05T02:49:47.893 に答える
1

Windows用のSafariでも同じ問題があります。しかし、Flash Player をバージョン 10.0.45.2 に更新した後、問題はなくなりました。つまり、Flash Player のバグだと思います。

于 2010-04-12T12:38:29.630 に答える