Youtube iframe wmode sorunu


134

JQuery ile javascript kullanarak, bir web sitesinde bir video görüntülemek için bir youtube url ile bir iframe ekliyorum ancak youtube iframe yüklenen gömme kodu wmode = "Opak" yok, bu nedenle sayfadaki modal kutuları gösterilir youtube videosunun altında.

Sorunun nasıl çözüleceği hakkında bir fikriniz var mı?


Hala böyle bir mesele var mı? Bu çözümü daha önce kullandım, ancak en son Chrome / Firefox / IE'de orijinal sorunu yeniden oluşturamıyorum.
marcovtwout

Yanıtlar:


238

?wmode=opaqueURL'ye veya &wmode=opaquezaten bir parametre varsa eklemeyi deneyin .

Eğer işe yaramazsa bunun yerine &wmode=transparentIE tarayıcıda da çalışacak bunu deneyin .


1
Güzel! firefox & chrome üzerinde çalışıyor, ancak bir nedenden dolayı IE üzerinde çalışmıyor ... herhangi bir fikir?
danfromisrael

31
bunun yerine & wmode = şeffaf kullanmayı deneyin
Shabith

29
"& Amp; wmode = xxxx" ayarı, URL'de zaten parametreler geçirdiğinizi varsayar. Benim durumumda değildi, bu yüzden bunun yerine URL'ye "? Wmode = xxxx" eklemem gerekiyor.
Matt Huggins

6
Arasındaki farklar opaquevetransparent . opaquedaha performanslı olması gerekiyordu.
halka

3
Shabith - "wmode = Opak", "wmode = opak" olmalıdır (küçük harf 'o')
John

81

?wmode=transparentURL'nin sonuna eklemeyi deneyin . Benim için çalıştı.


Bence 'Şeffaf' tercih edilen seçenek olmalı.
Foxinni

18

Yeni eşzamansız API'yı kullanıyorsanız, parametreyi şu şekilde eklemeniz gerekir:

<!-- 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
      }
    });
}

Bu, Google dokümanlarına ve buradaki örneğe dayanmaktadır: http://code.google.com/apis/youtube/iframe_api_reference.html


7
Bu AYRICA playerVars wmode gerektiğini unutmayın. YT.Player'ın hemen altındaysa, sadece HTML5 oynatıcı için çalışır. PlayerVars'a wmode eklemek, bu parametreyi kendi z sırası problemi olan Flash nesnesine de gönderir. Buraya bakın: groups.google.com/forum/?fromgroups#!topic/youtube-api-gdata/… Cevabınızı buna göre düzenleyeceğim.
Dylan McCall

1
Bunu denedim ve işe yaramadı. Ayrıca YouTude belgelerinde wmode için herhangi bir başvuru bulamadım.
sboisse

Bağlantı, ilk yayınladığımdan beri değişti ve wmode'u ayarlama yöntemi de değişti. Herhangi bir flash parametresini şimdi veya youtube player parametresini playerVars aracılığıyla ayarlayabilirsiniz. Yukarıdaki örneği güncelledim.
Plastik Sturgeon

URL'de kolayca değiştirilebilen bir değeri değiştirmek için API'nın tamamını yüklemek toplamda fazladır. Bunu kullanma.
fregante

Kromsuz oynatıcıyla çalışan ve UI'yi kontrol etmek için JS API'sini kullanan bazılarımız var. Bizim için bu çözüm tamamen sallanıyor! Teşekkürler
maxijb

8

Ekleme ?wmode=opaqueHenüz IE'de test etmedim, ancak URL benim için bu sorunu çözmek gibi görünüyor.

Daha önce önerilen çözümle ilgili sorun yaşayanlarınız için, bir başlangıç ​​işareti ve yalnızca URL'ye başka argümanlar sağlıyorsanız işe yarayacağını unutmayın. İlk argümanın bir başlangıç ​​soru işareti olmalıdır:http://www.example.com?first=foo&second=bar


Başlangıçta göstermeye çalıştığım videoya bakılmaksızın siyah bir dikdörtgen alıyordum .. test makinesinde flaş takılı değildi ve flaş takma diyaloğu çok fazla dengelendi!
Zeb

3

&amp;wmode=transparentURL'ye ekleyin ve işiniz bitti, test edildi.

Bu tekniği kendi wordpress eklentimde kullanıyorum YouTube kısa kodumda kullanıyorum

Herhangi bir sorunla karşılaşırsanız kaynak kodunu kontrol edin.


URL tüpünden sonra & wmode = şeffaf ekleme Sorunu tüm tarayıcılarda çözdü. Bay Tubal için teşekkürler, İyi iş :)

1

Sadece bir ipucu! - gömülü videonun üzerinde olmasını istediğiniz öğenin z dizinini oluşturduğunuzdan emin olun. Wmode querystring ekledim, ve hala işe yaramadı ... diğer öğenin z-endeksi yükseltilene kadar. :)


0

&wmode=opaquebenim için çalışmadı (krom 10) ama &amp;wmode=transparentsorunu hemen düzeltti.


0

Bu eski bir soru olduğunu biliyorum, ama yine de bu sorun için en iyi aramalarda geliyor, bu yüzden IE için bir arayanlara yardımcı olmak için yeni bir cevap ekliyorum:

&wmode=opaqueURL'nin sonuna ekleme IE 10'da çalışmaz ...

Ancak, ekleme ?wmode=opaquehile yapar!


Bu çözümü burada buldum : http://alamoxie.com/blog/web-design/stop-iframes-covering-site-elements


&ve ?hangi sırayla kullanıldıklarına ve URL'ye hangi diğer ayarların dahil edildiğine bağlı olarak her ikisi de doğrudur. Açıkçası ?, bu ilk (veya sadece) ayar ise kullanılır, &aksi takdirde.
Alex

Evet, ancak IE'nin özel ihtiyaçları var. Sadece deneyin ve IE 10'da hangisinin çalıştığını ve hangisinin çalışmadığını görün. Bunu IE 11'de henüz denemedim.
Amber Haziran

0

Geçenlerde gördüm ki bazen flash player tanımaz &wmode=opaque, siz de geçmeniz gerekir &WMode=opaque(büyük harfe dikkat edin).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.