2

YouTubeビデオが含まれている場合、divを非表示にする一般的な方法を使用すると、サファリでは機能しないことに気付きました。この基本的なウェブページを見てください-

<!DOCTYPE html>
<html>
<head><title>Safari Test</title></head>
<body>
<div id="test">
<iframe width="560" height="315" src="http://www.youtube.com/embed/Nry5zSJxG9k" frameborder="0" allowfullscreen></iframe>
</div>
<div id="safari" style="display: none;">
<iframe width="560" height="315" src="http://www.youtube.com/embed/Nry5zSJxG9k" frameborder="0" allowfullscreen></iframe>
</div>
</body>
</html>

divは現在非表示になっていますが、これを試してみてください-これをsafariで表示し、開発ツールを開きます。サファリdivに移動し、[表示]をクリックすると、ビデオは再表示されません。次に、もう一度クリックして非表示にすると、非表示にならないことがわかります。なぜこれが問題になるのでしょうか。私はYouTubeビデオのカルーセルを使用していますが、非アクティブなビデオを非表示にすることで機能します。サファリの最も理由のあるバージョンである5.1.7では、ビデオは単に消えることはありません。誰かがこれの修正を知っていますか?不透明度、高さ、幅、視認性で非表示にしてみましたが、Safariでも表示されます。誰かアイデアはありますか?

4

5 に答える 5

5

不透明度、高さ、幅、視認性で非表示にしてみましたが、Safariでも表示されます。誰かアイデアはありますか?

iframeを画面から物理的に移動してみましたか?

position: absolute;
left: -10000px;
top: -10000px;
于 2012-09-19T22:23:07.923 に答える
1

この答えを見たことがありますか?それは私のために同じ問題を解決しました!

iframe 内の Youtube ビデオが Safari 5.1 で非表示にならない

于 2012-11-29T14:32:01.087 に答える
1

文書化されていない 'wmode': 'transparent' をこのようにチェックアウトします ....

    player = new YT.Player('player', {
        height: '476',
        width: '400',
        videoId: 'yourvidhere',
        playerVars: {
            'autoplay': 0,
                'controls': 0,
                'rel': 0,
                'showinfo': 0,
                'modestbranding': 1,
          'wmode': 'transparent'
        },
        events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
        }
    });
于 2013-06-02T08:25:47.370 に答える
0

divを非表示にするときにiframeのsrc属性を空にしdocument.getElementById("iframetab").setAttribute("src","");、divを表示するときに属性を設定して iframeIDを指定しますdocument.getElementById("iframetab").setAttribute("src","www.google.com");

于 2012-09-19T22:20:03.357 に答える