javascript - 更改选择列表中的选项时如何停止所有 YouTube 视频
问题描述
我在隐藏的 div 中有几个 YouTube 播放器,它们根据 WP 模板中的选择显示/隐藏。我遇到的问题是,如果您正在播放视频,请使用选择列表更改频道,该视频在隐藏后继续播放。在加载新内容时,您仍然可以听到原始视频的音频。全局变量“players”出现错误->“players.pauseVideo 不是函数”。在代码中,我创建了一个视频播放器数组并尝试创建一个全局停止函数,无论我使用什么 var、players、players_list 等,我都会遇到同样的错误。
var players = new Array();
var players_list = ["ytpl-player1", "ytpl-player2", "ytpl-player3"];
function stopGlobal() {
players_list.pauseVideo();
}
解决方案
有几个错误。只看其中之一。
var players = new Array();
var players_list = ["ytpl-player1", "ytpl-player2", "ytpl-player3"];
for (item in players_list) {
console.log('Trying to set "'+ players_list[item] + '" as index of array.');
players[players_list[item]] = 'whatever';
}
console.log('Result:');
console.log(players);
使固定:
var players = {
"ytpl-player1": null,
"ytpl-player2": null,
"ytpl-player3": null,
};
Object.keys(players).forEach(function(key) {
players[key] = 'new YT.Player(key, ...';
});
console.log('Result:');
console.log(players);
然后你可以像上面一样再次迭代并在每个值上调用 pauseVideo() 。
推荐阅读
- javascript - 在 PHP 中寻找这个 JS 函数的等价物
- python - 使用 defaultlist() 创建一个函数来初始化多个字典?
- powershell - Powershell - 在查看创建新文件的文件夹时 - 如果“Register-ObjectEvent”中的语句未触发
- java - 如果没有向下滚动,价格没有添加
- solr - Solr 中以搜索字符串开头的搜索结果的优先级
- javascript - 如何将数组属性写入 DOM 元素数组
- python - 仅裁剪 -2 标准差
- python - 如何解决:'操作数不能与形状一起广播'
- html - 关于不同写作方式的问题
- ios - Firebase iOS:检查是否存在有电子邮件的用户而不退出当前匿名用户