📅  最后修改于: 2023-12-03 15:36:15.370000             🧑  作者: Mango
YouTube视频嵌入到网页中的iframe默认会包含一些控件,如播放器控制条、视频标题、推荐视频等。但有的场景下我们可能不想显示这些控件,那么如何从YouTube视频 iframe中删除这些控件呢?
以下是实现的几种方式:
YouTube API提供了一些URL参数可以用来控制是否显示控件,最常用的有 controls
和 showinfo
参数。
controls=0
表示去除播放器控件条,showinfo=0
表示去除视频标题和推荐视频。
<iframe src="https://www.youtube.com/embed/VIDEO_ID?controls=0&showinfo=0"></iframe>
需要注意的是,这种方式只能在视频开始播放前生效,在播放过程中通过URL参数改变是无法去除已经显示出来的控件的。
除了通过URL参数控制外,我们还可以通过CSS样式控制iframe中的元素。如下所示,通过设置 display:none
去除播放器控件条、视频标题和推荐视频。
<style>
.hide-controls .ytp-chrome-top, .hide-controls .ytp-chrome-bottom, .hide-controls .ytp-title-link {
display:none !important;
}
</style>
<iframe class="hide-controls" src="https://www.youtube.com/embed/VIDEO_ID"></iframe>
实际上,除了CSS控制外我们也可以通过JavaScript控制iframe中的元素。以下是一段代码可以控制去除播放器控件条、视频标题和推荐视频:
<iframe id="player" src="https://www.youtube.com/embed/VIDEO_ID?enablejsapi=1"></iframe>
<script type="text/javascript">
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
events: {
'onReady': onPlayerReady
}
});
}
function onPlayerReady(event) {
event.target
.getIframe()
.contentWindow.document
.querySelector('#movie_player > div.ytp-chrome-top, #movie_player > div.ytp-chrome-bottom, #movie_player .ytp-title-link')
.style.display = 'none';
}
</script>
该代码会先创建一个YouTube Player对象,然后在视频加载完成后通过DOM选择器找到相应的元素,再将它们的样式设置为 display:none
。
以上是几种从YouTube视频 iframe中删除控件的方式,开发者们可以根据具体需求选择适合自己场景的方法。