jQuery で JavaScript を使用して、YouTube の URL を含む iframe を追加してウェブサイトにビデオを表示しますが、YouTube から iframe に読み込まれる埋め込みコードには wmode="Opaque" がないため、ページのモーダル ボックスが表示されます。ユーチューブ動画の下。
問題を解決する方法はありますか?
?wmode=opaque
URL に追加するか&wmode=opaque
、パラメーターが既に存在する場合は試してください。
動作しない場合は、代わりに&wmode=transparent
これを試してください。これは IE ブラウザーでも動作します。
?wmode=transparent
URL の末尾に追加してみてください。私のために働いた。
新しい非同期APIを使用している場合は、次のようにパラメーターを追加する必要があります。
<!-- YOUTUBE -->
// 2. This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// 3. This function creates an <iframe> (and YouTube player)
// after the API code downloads.
var player;
var initialVideo = 'ApkM4t9L5jE'; // YOUR YOUTUBE VIDEO ID
function onYouTubePlayerAPIReady() {
console.log("onYouTubePlayerAPIReady" + initialVideo);
player = new YT.Player('player', {
height: '381',
width: '681',
wmode: 'transparent', // SECRET SAUCE HERE
videoId: initialVideo,
playerVars: { 'autoplay': 1, 'rel': 0, 'wmode':'transparent' },
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
これは、Googleのドキュメントと例に基づいています: http ://code.google.com/apis/youtube/iframe_api_reference.html
URL に追加?wmode=opaque
すると、この問題は解決するようですが、IE ではまだテストしていません。
以前に提案された解決策に問題がある場合は、先頭のアンパサンドは、URL に他の引数を既に指定している場合にのみ機能することに注意してください。最初の引数には最初に疑問符が必要です。http://www.example.com?first=foo&second=bar
URLに追加&wmode=transparent
すると、テストが完了します。
私は自分のワードプレスプラグインYouTubeショートコードでそのテクニックを使用しています
問題が発生した場合は、ソース コードを確認してください。
ちょっとしたヒントです!--埋め込まれたビデオの上に配置したい要素の z-index を上げてください。wmode クエリ文字列を追加しましたが、まだ機能しませんでした...他の要素の z-index を上げるまで。:)
これは古い質問であることは承知していますが、この問題の検索で依然として上位に表示されるため、IE 用の回答を探している人に役立つ新しい回答を追加します。
URL の最後に追加&wmode=opaque
しても IE 10 では機能しません...
ただし、追加すると?wmode=opaque
うまくいきます。
ここでこのソリューションを見つけました: http://alamoxie.com/blog/web-design/stop-iframes-covering-site-elements
&wmode=opaque
私にはうまくいきませんでした(chrome 10)が&wmode=transparent
、問題を解決しました。