You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bootstrap 4嵌入YouTube视频的模态框Esc键关闭失效求助

解决Bootstrap 4模态框嵌入YouTube视频后Esc键无法关闭的问题

问题原因

当与iframe内的YouTube播放器交互后,页面焦点会转移到iframe内部文档中,此时Esc键的键盘事件被iframe捕获,无法冒泡到父页面的Bootstrap模态框,导致原本设置的data-keyboard="true"失效。

解决方案:全局监听Esc键事件

在父页面添加全局键盘事件监听,当模态框处于显示状态时,捕获Esc键并手动触发关闭操作。

修改你的jQuery代码,新增以下监听逻辑:

// 全局监听Esc键,手动关闭模态框
$(document).on('keydown', function(e) {
  // 检查模态框是否显示,且按下的是Esc键
  if ($('#modalVideo').hasClass('show') && e.key === 'Escape') {
    $('#modalVideo').modal('hide');
  }
});

完整整合代码

最终的jQuery代码如下:

var src_culture="https://www.youtube.com/embed/someVideo_x?autoplay=1&enablejsapi=1";

// 模态框隐藏时重置iframe
$('#modalVideo').on('hidden.bs.modal', function (e) {
  $('#modalVideo iframe').attr("src", "");
  $("body").css("padding-right","0");
});

// 模态框显示时加载视频
$("#modalVideo").on('shown.bs.modal', function(){
  $('#modalVideo iframe').attr('src', src_culture);
  $("body").css("padding-right","0");
});

// 全局监听Esc键关闭模态框
$(document).on('keydown', function(e) {
  if ($('#modalVideo').hasClass('show') && e.key === 'Escape') {
    $('#modalVideo').modal('hide');
  }
});

补充说明

  • 该方案无需依赖YouTube JS API,简单直接,可覆盖所有交互场景(包括暂停视频、Tab键切换焦点后)。
  • 确保模态框的id与代码中的选择器完全一致,避免无效调用。

内容的提问来源于stack exchange,提问作者peikado

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 12:30:26