JavaScript play/pause YouTube iframe 按钮
JavaScript play/pause button for YouTube iframe
我正在一个网站上工作,我正在尝试在 <iframe>
标签中获取一个 YouTube 视频,以便通过一个按钮播放和暂停。我可以用单独的按钮让它播放或暂停,但我似乎无法让 if 语句工作以便只用一个按钮控制视频。
我对 JavaScript 还是比较陌生,所以可能只是我错过了一些简单的东西,但我已经在网上搜索了一段时间,但找不到任何解决我问题的方法。
下面是我现在使用的代码。我第一次点击 YouTube 视频播放按钮,但第二次没有任何反应。
我还尝试为嵌入式视频打开自动播放,但是当我按下按钮时,什么也没有发生。
这是我目前使用的代码:
HTML
<div class="iframe">
<iframe id="iframe1" width="360" height="203" src="https://www.youtube-nocookie.com/embed/videoseries?list=PLb-Mg8r29XuOV9CbkXVDQ5NdQG__WbJqI&controls=0&showinfo=0&enablejsapi=1" frameborder="0" allowfullscreen></iframe>
<a href="#" onclick="iframe1play();return false;">
<div id="iframe1play">
</div>
</a>
</div>
JavaScript
function onYouTubePlayerAPIReady() {
iframe1 = new YT.Player('iframe1');
}
function iframe1play() {
if (event.data == YT.PlayerState.PLAYING && !done) {
iframe1.pauseVideo();
document.getElementById("iframe1").style.opacity = "0";
} else {
iframe1.playVideo();
document.getElementById("iframe1").style.opacity = "1";
}
}
var tag = document.createElement('script');
tag.src = "//www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
如有任何建议,我们将不胜感激!
也许我不明白你的问题。因为我试过你的代码并且它有效。
我可以看到一个包含 youtube 视频的页面。单击播放按钮时视频开始播放,当我再次单击视频时暂停。那么你的问题是什么。对不起,如果我不使用评论,但我还不能。
好的,主要问题是您的函数中没有事件对象。
这应该可以解决问题
if (player.getPlayerState() == YT.PlayerState.PLAYING) {
player.pauseVideo();
document.getElementById("iframe").style.opacity = "0";
} else {
player.playVideo();
document.getElementById("iframe").style.opacity = "1";
}
使用 jQuery 或其他框架,如果可以的话,将函数注入元素。
我正在一个网站上工作,我正在尝试在 <iframe>
标签中获取一个 YouTube 视频,以便通过一个按钮播放和暂停。我可以用单独的按钮让它播放或暂停,但我似乎无法让 if 语句工作以便只用一个按钮控制视频。
我对 JavaScript 还是比较陌生,所以可能只是我错过了一些简单的东西,但我已经在网上搜索了一段时间,但找不到任何解决我问题的方法。
下面是我现在使用的代码。我第一次点击 YouTube 视频播放按钮,但第二次没有任何反应。 我还尝试为嵌入式视频打开自动播放,但是当我按下按钮时,什么也没有发生。
这是我目前使用的代码:
HTML
<div class="iframe">
<iframe id="iframe1" width="360" height="203" src="https://www.youtube-nocookie.com/embed/videoseries?list=PLb-Mg8r29XuOV9CbkXVDQ5NdQG__WbJqI&controls=0&showinfo=0&enablejsapi=1" frameborder="0" allowfullscreen></iframe>
<a href="#" onclick="iframe1play();return false;">
<div id="iframe1play">
</div>
</a>
</div>
JavaScript
function onYouTubePlayerAPIReady() {
iframe1 = new YT.Player('iframe1');
}
function iframe1play() {
if (event.data == YT.PlayerState.PLAYING && !done) {
iframe1.pauseVideo();
document.getElementById("iframe1").style.opacity = "0";
} else {
iframe1.playVideo();
document.getElementById("iframe1").style.opacity = "1";
}
}
var tag = document.createElement('script');
tag.src = "//www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
如有任何建议,我们将不胜感激!
也许我不明白你的问题。因为我试过你的代码并且它有效。 我可以看到一个包含 youtube 视频的页面。单击播放按钮时视频开始播放,当我再次单击视频时暂停。那么你的问题是什么。对不起,如果我不使用评论,但我还不能。
好的,主要问题是您的函数中没有事件对象。
这应该可以解决问题
if (player.getPlayerState() == YT.PlayerState.PLAYING) {
player.pauseVideo();
document.getElementById("iframe").style.opacity = "0";
} else {
player.playVideo();
document.getElementById("iframe").style.opacity = "1";
}
使用 jQuery 或其他框架,如果可以的话,将函数注入元素。