我使用的是Bootstrap 5 Modal弹出窗口,我在弹出窗口中嵌入了一个IFRAME,一切都运行得很好,但问题是,当我关闭弹出窗口时,视频没有停止/暂停,甚至弹出窗口也关闭了,它仍然在后台运行,我试图通过jQuery阻止它,但不知道为什么它不工作. 有人能告诉我在弹出窗口关闭时如何暂停/停止视频吗?

$(document).ready(function() {
  var url = $("#how-it-works-video").attr('src');

  $("#exampleModal").on('hide', function() {
    $("#how-it-works-video").attr('src', '');
  });

  $("#exampleModal").on('show', function() {
    $("#how-it-works-video").attr('src', url);
  });
});
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">


<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>





<!-- Button trigger modal -->
<a class="btn btn-primary" type="button" data-bs-toggle="modal" data-bs-target="#exampleModal">
  How it works
</a>

<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">

  <div class="modal-dialog modal-dialog-centered">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="staticBackdropLabel">Modal title</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
      </div>
      
      
      <div class="modal-body">      
      <iframe id="how-it-works-video" width="100%" height="100%" src="https://www.youtube.com/embed/BrD3abCyuzw" title="YouTube video player" frameborder="5" allowfullscreen></iframe>
      </div>


    </div>
  </div>
</div>


<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>

编辑:我注意到视频不能在Stackoverflow代码编辑器中播放,但如果您使用任何其他代码编辑器,它将会正常工作

推荐答案

Bootstrap v5具有不同的事件侦听器. 你得把show改成shown.bs.modal/hidehide.bs.modal.

  $("#exampleModal").on('hide.bs.modal', function() {
    $("#how-it-works-video").attr('src', '');
        console.log('Unloaded')
  });

  $("#exampleModal").on('shown.bs.modal', function() {
    $("#how-it-works-video").attr('src', url);
        console.log('Loaded')
  });

https://jsfiddle.net/39gmbk6p/

Javascript相关问答推荐

React中的表格中 Select Radio按钮

ChartJS:分组堆叠条形图渲染错误

我的JS代码将按照哪个序列被解释

如何expose 像React在onChange、onClick等中所做的那样的参数?

JavaScript:循环访问不断变化的数组中的元素

如何避免使用ajax在Vue 3合成API中重定向

使用useup时,React-Redux无法找到Redux上下文值

如何解决CORS政策的问题

如何从JSON数组添加Google Maps标记—或者如何为数组添加参数到标记构造器

如何禁用附加图标点击的v—自动完成事件

无法读取未定义错误的属性路径名''

使用GraphQL查询Uniswap的ETH价格

如何使onPaste事件与可拖动的HTML元素一起工作?

变量的值在Reaction组件中的Try-Catch语句之外丢失

钛中的onClick事件需要在两次点击之间等待几秒钟

如何确保预订系统跨不同时区的日期时间处理一致?

使用类型:assets资源 /资源&时,webpack的配置对象&无效

如何使用<;Link>;执行与JS Reaction中的";window.Location=/GameOverDied;";类似的操作?

图表4-堆叠线和条形图之间的填充区域

在查看网页时,如何使HTML中的按钮工作方式类似于鼠标上的滚轮或箭头键?