html - jQuery在用户关闭视频后阻止自动播放
问题描述
我正在编写一个脚本,它将弹出一个视频并按照这个示例自动播放它。一切正常,但是当用户关闭视频时,它会继续在后台播放。用户关闭视频后,如何告诉浏览器关闭自动播放?
$(document).ready(function() {
$('#headerVideoLink').magnificPopup({
type: 'inline'
});
});
#headerPopup {
width: 75%;
margin: 0 auto;
position: relative;
top: 80px;
}
#headerPopup iframe {
width: 100%;
margin: 0 auto;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="headerPopup" class="mfp-hide">
<iframe width="854" height="480" src="https://www.youtube.com/embed/qN3OueBm9F4?autoplay=1" frameborder="0" allow="autoplay" allowfullscreen></iframe>
</div>
解决方案
从我的角度来看,您的问题没有直接的答案。这是人们尝试在网站上显示视频时经常遇到的情况。
执行此操作的最佳方法是使用 Bootstrap CSS 框架,因为它具有模式(弹出窗口),您可以在其中添加视频,并且无论何时关闭或打开它们,它都会显示可以触发功能的事件。
在这种情况下,您需要 jQuery 在打开和关闭 modal 时做一些事情。为了避免在用户关闭模态框时视频在后台播放,一种方法是删除src
iframe 属性的内容,这将阻止 iframe 继续播放视频。然后当用户打开模式时添加链接。如果不这样做,用户可能会点击视频一次,它会正常工作,但是在 jQuery 删除视频的链接后,它将无法正常工作。
我为此目的使用的 jQuery 脚本:
$(document).ready(function(){
// Save the url of the video in a variable
var url = $("#MyVideo").attr('src');
// When the modal is closed remove the url of the iframe
$("#myModal").on('hide.bs.modal', function(){
$("#MyVideo").attr('src', '');
});
// When the modal is opened, add the url to the iframe
$("#myModal").on('show.bs.modal', function(){
$("#MyVideo").attr('src', url);
});
});
您可以在此处阅读有关 Bootstrap 模态如何工作的更多信息。事件的详细信息和解释在页面底部。
推荐阅读
- azure - 是否有一些工具/命令可以从 powershell 运行 azcli 文件?
- appium - 如何滚动到不在 Appium 视口内的元素?
- json - 通过 spark sql 使用 json serde 访问 hive 表
- c++ - 查找所有元素的数组中最新最小元素的位置
- android - 更新后模拟器出现问题
- linux - 如果大于一定数量,如何使发行版自动安装
- python - 具有元类注册的数据类
- mysql - mysql中两个JSON字段的区别?
- agora.io - Signature verification failure - RTM Token
- angular - Custom tooltip template in angular syncfusion scheduler