在 Bootstrap 模式中自动播放 YouTube 视频
答案:使用 JavaScript 添加删除视频源 URL
如果尝试通过附加视频源 url 来自动播放 嵌入在 Bootstrap 模式中的 YouTube 视频,即 <iframe>
src
属性值与 ?autoplay=1
它将无法正常工作,因为视频是在显示模式之前开始播放的。
要解决此问题,您可以使用 JavaScript 根据是否显示 Bootstrap 模态来添加或删除 YouTube 视频源 url。 让我们看看它是如何工作的:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Autoplay YouTube Video in Bootstrap Modal</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
<script src="js/jquery-3.5.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<style>
.modal-content iframe{
margin: 0 auto;
display: block;
}
</style>
<script>
$(document).ready(function(){
/* 获取 iframe src 属性值,即 YouTube 视频 url
and store it in a variable */
var url = $("#cartoonVideo").attr('src');
/* 在页面加载时删除 iframe src 属性
防止在后台自动播放 */
$("#cartoonVideo").attr('src', '');
/* 将最初存储的 url 分配回 iframe src
模态显示时的属性 */
$("#myModal").on('shown.bs.modal', function(){
$("#cartoonVideo").attr('src', url);
});
/* 将空 url 值分配给 iframe src 属性时
模态隐藏,停止视频播放 */
$("#myModal").on('hide.bs.modal', function(){
$("#cartoonVideo").attr('src', '');
});
});
</script>
</head>
<body>
<div class="bs-example">
<!-- 按钮 HTML(触发模态) -->
<a href="#myModal" class="btn btn-lg btn-primary" data-toggle="modal">Launch Demo Modal</a>
<!-- 模态 HTML -->
<div id="myModal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">YouTube Video</h5>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body">
<div class="embed-responsive embed-responsive-16by9">
<iframe id="cartoonVideo" class="embed-responsive-item" width="560" height="315" src="//www.youtube.com/embed/YE7VzlLtp-4?autoplay=1" allowfullscreen></iframe>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
FAQ 相关问题解答
以下是与此主题相关的更多常见问题解答:
- 如何在 Bootstrap modal 中嵌入 YouTube 视频
- 如何将 Bootstrap 模态垂直居中对齐
- 如何更改 Bootstrap 模态框的默认宽度
- 如何在页面加载时启动 Bootstrap 模式
Advertisements