Проблема с YouTube iframe с параметром wmode


используя javascript с jQuery, я добавляю iframe с url youtube для отображения видео на веб-сайте, однако код вставки, который загружается в iframe с youtube, не имеет wmode="непрозрачный", поэтому модальные поля на странице отображаются под видео youtube.

любые идеи, как решить эту проблему?

9 133

9 ответов:

попробуйте добавить ?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

добавлять ?wmode=opaque к URL, кажется, решить эту проблему для меня, хотя я еще не тестировал его в IE.

для тех из вас, у кого есть проблемы с ранее предложенным решением, обратите внимание, что начальный амперсанд будет работать только в том случае, если вы уже предоставляете другие аргументы URL. Первый аргумент должен иметь начальный вопросительный знак: http://www.example.com?first=foo&second=bar

добавить &amp;wmode=transparent к url-адресу, и вы сделали, протестированы.

Я использую эту технику в моем собственном плагине wordpress YouTube шорткод

проверьте его исходный код, если вы столкнулись с какой-либо проблемой.

просто совет!-- убедитесь, что вы до Z-индекса на элементе, который вы хотите быть над встроенным видео. Я добавил строку запроса wmode, и она все еще не работала...пока я не поднял Z-индекс другого элемента. :)

&wmode=opaque не работает для меня (chrome 10), но &amp;wmode=transparent прояснил проблему прямо вверх.

Я знаю, что это старый вопрос, но он все еще появляется в верхних поисках этой проблемы, поэтому я добавляю новый ответ, чтобы помочь тем, кто ищет его для IE:

добавлять &wmode=opaque до конца URL не работает в IE 10...

добавление ?wmode=opaque делает трюк!


нашел это решение здесь: http://alamoxie.com/blog/web-design/stop-iframes-covering-site-elements

недавно я видел, что иногда flash player не распознает &wmode=opaque, istead вы должны пройти &WMode=opaque тоже (обратите внимание на заглавные).