0

私の HTML ページには、Flash SWF オブジェクトを含む別のページを参照する があります<div><iframe>これらのいずれかを設定した場合:

display:none;
visibility:hidden;
opacity:0;
filter:alpha(opacity=0);

<を<div>ラップするiframe>では、SWF オブジェクトがはっきりと見えることがありますが、<div><iframe>は予想どおり見えなくなります。

奇妙なことに、使用する SWF オブジェクトによっては、実際に機能することもあります。

予想される効果は、私の Mac 上のすべての最新ブラウザーと、Safariを除くすべての Windows 7 マシンで発生します。

編集

この問題を示すコード例を次に示します。

<button id="tryit" type="button">Try It</button>
<div id="test">
    <iframe src="hideswf-iframe.html" width="770" height="610" frameborder="0"></iframe>
</div>
<script type="text/javascript">
    var test = document.getElementById("test"),
        tryit = document.getElementById("tryit");

    tryit.addEventListener( "click", hideAndSeek, false );

    function hideAndSeek(e) {
        var style = test.style;
        style.opacity = (style.opacity == 1 || style.opacity == "") ? 0 : 1;
    }
</script>

モルモットとしてのサンプル SWF オブジェクト:

<object type="application/x-shockwave-flash" id="strobemediaplayback" data="StrobeMediaPlayback.swf" width="743" height="600" style="visibility: visible; ">
    <param name="allowFullScreen" value="true">
    <param name="wmode" value="direct">
    <param name="flashvars" value="favorFlashOverHtml5Video=true&amp;swf=StrobeMediaPlayback.swf&amp;javascriptCallbackFunction=$.fn.strobemediaplayback.triggerHandler&amp;minimumFlashPlayerVersion=10.0.0&amp;expressInstallSwfUrl=expressInstall.swf&amp;autoPlay=false&amp;loop=false&amp;controlBarMode=docked&amp;poster=&amp;src=http://players.edgesuite.net/videos/big_buck_bunny/bbb_448x252.mp4&amp;useHTML5=false&amp;width=1187&amp;height=959&amp;queryString=favorFlashOverHtml5Video=true&amp;swf=StrobeMediaPlayback.swf&amp;javascriptCallbackFunction=$.fn.strobemediaplayback.triggerHandler&amp;minimumFlashPlayerVersion=10.0.0&amp;expressInstallSwfUrl=expressInstall.swf&amp;autoPlay=false&amp;loop=false&amp;controlBarMode=docked&amp;poster=&amp;src=http://players.edgesuite.net/videos/big_buck_bunny/bbb_448x252.mp4&amp;useHTML5=false&amp;width=1187&amp;height=959">
</object>

ファイルhideswf-iframe.htmlに存在します。

これは、Mac 上の最新バージョンの Safari、Chrome、および Firefox と、Windows 7 マシン上の最新バージョンの Chrome、Firefox、および Internet Explorer で機能し、失敗するはずです (エラーは発生しませんが、非表示動作は発生しません)。 Windows 7 マシンの Safari で。

成功した SWF オブジェクトと失敗した SWF オブジェクトについて気づいたことの 1 つは、失敗したオブジェクトはすべてビデオ コンテンツを中心に展開しているのに対し、成功したオブジェクトはそうではないということです。確かに私は半ダース以上のオブジェクトをテストしていませんが、それはまったくの偶然です。:)

4

3 に答える 3

1

この問題も解決しようとしており、サファリからのドキュメントが見つかりませんでした。css と jquery の非表示の可能なすべての組み合わせを試しました。懐疑的な人には機能しません。http://css-tricksを確認してください。 .com/examples/AnythingSlider/を safari にアクセスしてスライドを確認すると、3D スライドにバグが表示されます。

于 2012-07-24T05:19:14.117 に答える
0

あなたの場合は:

<div id="main">
  <iframe>
    <object.../>
  </iframe>
</div>

を使用することをお勧めしますjQuery("#main").toggle()。これは、私の経験ではかなりうまく機能します。

于 2012-04-13T07:43:19.017 に答える
0

次の JavaScript 行をページに追加するだけです。

 swfobject.switchOffAutoHideShow();
于 2015-11-20T09:37:26.897 に答える