使用jQuery和JavaScript,我正在添加一个包含YouTube URL的iframe以在网站上显示视频,但是从YouTube加载到iframe中的嵌入代码没有wmode ="Opaque"属性,因此页面上的模态框被显示在YouTube视频下方。有什么解决方法吗?
尝试将?wmode=opaque
添加到URL中,如果已经有参数则使用&wmode=opaque
。
如果不起作用,请改为使用&wmode=transparent
,这将在IE浏览器中也可以使用。
opaque
和 transparent
的区别:opaque
通常比较高效。 - donut尝试在URL的末尾添加?wmode=transparent
。这对我有用。
<!-- 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
&wmode=transparent
添加到URL中就可以了,已经测试过。小提示!确保您在要覆盖嵌入式视频的元素上提高z-index。我添加了wmode查询字符串,但它仍然无法正常工作...直到我提高了其他元素的z-index。:)
&wmode=opaque
对我没用(chrome 10),但是&wmode=transparent
解决了问题。
我知道这是一个老问题,但它仍然出现在此问题的热门搜索中,因此我正在添加一个新答案来帮助那些寻找IE解决方案的人:
在URL末尾添加&wmode=opaque
在IE 10中不起作用...
然而,在URL末尾添加?wmode=opaque
就可以解决问题!
&
和?
都是正确的。显然,如果这是第一个(或唯一的)设置,则使用?
,否则使用&
。 - Alex&wmode=opaque
,相反你应该传递&WMode=opaque
(注意大写)。