我正在开发一个网站,主页上有一些嵌入式 YouTube 视频。这些视频直到最近还很有效,但现在似乎不再有效了!它从 YouTube 获取视频,但我无法播放其中任何一个。
我将代码与早期版本进行了比较,代码仍然相同。我已经在这个问题上摸索了好几个小时,试图找出为什么它不再起作用了。这是一个包含我正在使用的代码的 JSFiddle。 https://jsfiddle.net/ftmLsaym/
我需要做什么来解决这个问题有什么想法吗?
HTML
<div class="splashdiv">
<iframe id="teaser" src="https://www.youtube.com/embed/PNT39y4N4H4?rel=0" frameborder="0" allowfullscreen></iframe>
</div>
<div style="width: 100%">
<button style="width:50%;float:left" onclick="previousVideo()">Previous</button>
<button style="width:50%;float:right" onclick="nextVideo()">Next</button></div>
CSS
.splashdiv {
position: relative;
width: 100%;
height: 0;
padding-bottom: 51%;
z-index:-1;
}
.splashdiv iframe {
position: absolute;
width: 100%;
height: 100%;
left: 0; top: 0;
}
JS
var frame = document.getElementById('teaser');
var pos = 0;
var src = [
"https://www.youtube.com/embed/PNT39y4N4H4?rel=0",
"https://www.youtube.com/embed/M--kEKu8-IE?rel=0",
"https://www.youtube.com/embed/3wgd8fHidzg?rel=0",
"https://www.youtube.com/embed/2yf4bUW9mlE?rel=0",
"https://www.youtube.com/embed/CueAcWRsaY8?rel=0",
"https://www.youtube.com/embed/ulsa6Aog7Yw?rel=0",
"https://www.youtube.com/embed/7qTp3lk7gt4?rel=0"
]
function nextVideo() {
if (pos < 6) {
pos += 1;
showVideo();
}
}
function previousVideo() {
if (pos > 0) {
pos -= 1;
showVideo();
}
}
function showVideo() {
frame.src = src[pos];
}
function barnaby() {
pos = 1;
frame.src = src[pos]+"&autoplay=1";
}
只需删除这一行:
z-index:-1
z-index:-1
将整个 .splashdiv
div(包括 iframe)设置在 body 层后面。因此 YouTube iframe 无法捕获您的鼠标点击。
将 iframe 移出splashdiv - 这应该可以让视频运行。
用这个替换你的
.splashdiv
css 代码
.splashdiv {
position: relative;
width: 100%;
height: 0;
padding-bottom: 51%;
z-index:2;
}
新的 yt api 需要登录,这会破坏所有公共共享和嵌入。
现在 yt 视频是一个有围墙的花园,只有登录后才能看到。
因此,如果您想观看视频,则不允许任何隐私。
如果您生活在一个有审查制度的国家,请告别YT和思想自由。