【发布时间】:2021-12-29 13:01:27
【问题描述】:
我有一个字符串数组,我想为每个字符串定义一个值。一个简单的例子是
varString = "Hello";
eval(varString + " = 9");
console.log(Hello);
我期望在Hello 中获得 9。这显然是有效的。但我想知道是否有更简洁的版本!
现在,您可能想知道我为什么要这样做!主要原因是我试图在我的 HTML 中为几个嵌入的 youtube 视频“setPlaybackRate”。
var player;
function onYouTubeIframeAPIReady() {
for (let index = 0; index < IDYT.length; index++) {
element = IDYT[index];
object1 = Objects1(youtubeVideo[index], YTtime[index]);
player = new YT.Player(element, object1);
}
}
如您所见,player 在函数 onYouTubeIframeAPIReady() 之外定义,每个 Objects1 函数和 IDYT 定义如下
function Objects1(videoId1, startID1) {
let object1 = {
height: "315",
width: "560",
videoId: videoId1,
playerVars: {
autoplay: 0,
loop: 1,
start: startID1,
// mute: 1,
},
events: {
onStateChange: Test1,
},
};
return object1;
}
和
let IDYT = ["player", "player1"];
let youtubeVideo = ["00vnln25HBg", "E-xMXv3L5L8"];
let YTtime = [20, 456];
但问题在于事件何时启动,即函数onPlayerStateChange由:
function onPlayerStateChange() {
player.setPlaybackRate(1.5);
}
只有最后一个 youtube 视频的播放速率设置为 1.5,这是我没想到的。我认为这主要是只定义了最后一个player 变量。如果我能够执行一个将字符串更改为可能有帮助的变量的循环。如果您能给我有关如何解决此问题的指导,我将不胜感激。
非常感谢。
有用的链接:https://developers.google.com/youtube/iframe_api_reference
【问题讨论】:
标签: javascript html youtube