如何调整for loop代码使.playSingle2视频正常显示?
问题分析
当前代码里的for循环会遍历i=1、i=2、i=3,当i=2时,playlists[2]不存在,此时会调用players.add(".playSingle2", {}),给目标元素绑定了一个无有效播放配置的播放器。后续虽然再次调用players.add给.playSingle2设置了正确的播放列表参数,但重复初始化播放器引发冲突,最终导致视频无法显示。
代码修改方案
通过在for循环中跳过i=2的处理,就能避免重复初始化.playSingle2的播放器,具体有两种实现方式:
方式一:修改循环范围,仅处理i=1和i=3
直接指定循环处理的索引,跳过i=2:
function onYouTubeIframeAPIReady() { let playlists = Array(3); playlists[1] = "0dgNc5S8cLI,mnfmQe8Mv1g,-Xgi_way56U,CHahce95B1g"; // 只处理i=1和i=3,跳过i=2 for (let i of [1, 3]) { let playvars = {} if (playlists[i]) { playvars.playerVars = { playlist: playlists[i] }; } players.add(".playSingle" + i, playvars); } players.add(".playSingle2", { playerVars: { listType: "playlist", list: "PLYeOyMz9C9kYmnPHfw5-ItOxYBiMG4amq" } }); }
方式二:在循环内增加判断,跳过i=2的处理
保留原循环范围,加入条件判断跳过i=2:
function onYouTubeIframeAPIReady() { let playlists = Array(3); playlists[1] = "0dgNc5S8cLI,mnfmQe8Mv1g,-Xgi_way56U,CHahce95B1g"; for (let i = 1; i <= 3; i++) { // 跳过i=2,避免重复处理.playSingle2 if (i === 2) continue; let playvars = {} if (playlists[i]) { playvars.playerVars = { playlist: playlists[i] }; } players.add(".playSingle" + i, playvars); } players.add(".playSingle2", { playerVars: { listType: "playlist", list: "PLYeOyMz9C9kYmnPHfw5-ItOxYBiMG4amq" } }); }
说明
两种方式都能避免.playSingle2被重复初始化播放器,确保后续单独添加的正确配置生效,让视频正常显示。
内容的提问来源于stack exchange,提问作者user17631451
相关产品推荐
相关产品推荐

