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

如何修复点击X按钮后对应YouTube视频仍继续播放的代码问题

解决方案

你需要补充关闭按钮的点击事件监听逻辑,配合已存储的player实例调用停止播放方法,具体修改步骤如下:

  1. 先补全addPlayer函数的逻辑,将初始化后的YouTube播放器实例存入全局players数组中,方便后续调用接口:
function addPlayer(video, settings) {
  const defaults = {
    height: 360,
    host: "https://www.youtube-nocookie.com",
    videoId: video.dataset.id,
    width: 640
  };
  defaults.events = {
    "onReady": onPlayerReady
  };
  // 补充以下逻辑:初始化播放器并存入数组
  const player = new YT.Player(video, Object.assign({}, defaults, settings));
  players.push(player);
  return player;
}
  1. 给页面上的X关闭按钮绑定点击事件,触发时遍历所有播放器实例,执行stopVideo()方法停止播放:
// 选择器替换为你页面上实际的关闭按钮对应的选择器
const closeBtn = document.querySelector('关闭按钮选择器');
closeBtn.addEventListener('click', function() {
  // 遍历所有已初始化的播放器,停止正在播放的视频
  players.forEach(player => {
    if (player.getPlayerState() === YT.PlayerState.PLAYING) {
      player.stopVideo();
    }
  });
});

如果你的页面同一时间只会有一个激活播放的视频,也可以在播放时单独记录当前激活的player实例,关闭时只针对该实例调用停止方法,不需要遍历所有player,性能更优。

注意:如果关闭按钮是动态生成的元素,需要使用事件委托的方式绑定点击事件,避免监听器绑定失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:15:03