FLASH-のz-indexとオーバーレイするDIV-elementでいくつか問題が発生しました。
私はこのjQuery/Javascriptソリューションを使用しました。これは、すべての(YouTubeとVimeo)iframeの「src」に「wmode =transparent」パラメーターを追加して、z-indexの問題(ちらつきなど)を解決します。
...
content.find('iframe').each(function() {
var iframe_source = $(this).attr('src');
var iframe_wmode = "wmode=transparent";
if ( iframe_source.indexOf('?') != -1 )
{
iframe_source = iframe_source.split('?');
$(this).attr('src',iframe_source[0]+'?'+iframe_wmode+'&'+iframe_source[1]);
}
else
{
$(this).attr('src',iframe_source+'?'+iframe_wmode);
}
});
...
jQuery / Javascriptソリューションがこの問題を修正するまで($(window).load(function(){}) 、(DOMのレンダリング中に)z-index-flickeringがまだあるため、 PHPでこのソリューションが必要になります。 .. $(document).ready(function(){}は私にはできません)。
たとえば、私のPHPコンテンツは次のようになります...
...
$content = '
foo bar foo bar
<iframe width="1280" height="720" src="http://www.youtube.com/embed/GASFa7rkLtM" frameborder="0" allowfullscreen></iframe>
foo bar foo bar
<iframe width="100" height="100" src="http://www.youtube.com/embed/GASFa7rkLtM?rel=0" frameborder="0" allowfullscreen></iframe>
foo bar foo bar
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/GASFa7rkLtM" frameborder="0" allowfullscreen></iframe>
foo bar foo bar
<iframe src="http://player.vimeo.com/video/57959739?autoplay=1&loop=1" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
foo bar foo bar';
...
...そしていくつかのpreg_match/regex-magicの後でこのように見えるはずです;)
...
$content = '
foo bar foo bar
<iframe width="1280" height="720" src="http://www.youtube.com/embed/GASFa7rkLtM?wmode=transparent" frameborder="0" allowfullscreen></iframe>
foo bar foo bar
<iframe width="100" height="100" src="http://www.youtube.com/embed/GASFa7rkLtM?rel=0&wmode=transparent" frameborder="0" allowfullscreen></iframe>
foo bar foo bar
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/GASFa7rkLtM?wmode=transparent" frameborder="0" allowfullscreen></iframe>
foo bar foo bar
<iframe src="http://player.vimeo.com/video/57959739?autoplay=1&loop=1&wmode=transparent" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
foo bar foo bar';
...
よろしくお願いします!
最高のマイク=)
PS:私の考えは、事前にPHPを介してz-indexの問題を解決することです(クライアント側ではなくサーバー側)。
PPS:参考までに-MySQL-DBからHTML-content /-tagsを含む「content」文字列を取得します。jQuery/Javascriptを介してDOMを変更するのではなく、これらの文字列を変更したいと思います。
更新/編集:
「OneTrickPony」の正規表現ソリューションを構築することは私のために働きました。最初の「preg_replace」を編集して、2番目の「preg_replace」を追加しました。1つ目は各iframe-srcの末尾に「?wmode =transparent」を追加し、2つ目は「?」を置き換えます URLに2回存在する場合は、「&」を付けます。
$content = preg_replace('#\<iframe(.*?)\ssrc\=\"(.*?)\"(.*?)\>#i',
'<iframe$1 src="$2?wmode=transparent"$3>', $content);
$content = preg_replace('#\<iframe(.*?)\ssrc\=\"(.*?)\?(.*?)\?(.*?)\"(.*?)\>#i',
'<iframe$1 src="$2?$3&$4"$5>', $content);
美しい解決策ではありませんが、私の目的には完璧に機能しました。
より良い提案はありますか?