当前我正在使用YouTube API iframe,但是当视频结束时,我正在尝试做某事,但是,我需要JavaScript中的全局变量才能继续。我的代码是这样:
var k =0
function onYouTubeIframeAPIReady()
{
for(j=0;j<tam2;j++)
{
var nombre="player"+j;
player = new YT.Player(nombre,
{
height:'300',
width:'580',
videoId:arrayJS[j],
events: {'onStateChange': onPlayerStateChange}
});
k++;
}
}
因此,我需要在我的onplayerStateChange函数中识别每个播放器,也就是说,获取数组arrayjs和arrayt的索引以获取生成完成事件的特定视频的ID和标题,我尝试执行以下操作,但是当我运行控制台时。log说该变量未定义:
function onPlayerStateChange(event)
{
if (event.data == YT.PlayerState.ENDED)
{
console.log(k);
$.ajax
({
async:true,
type: "POST",
url:'v.php',
data:
{
idvideo:arrayJS[k],
titlevideo:arrayT[k]
},
success:function envio(deVuelta)
{
alert(deVuelta);
},
timeout:30000,
error:function()
{
alert("Ocurrio un error");
}
});
}
}
您是否尝试过绑定?
function onYouTubeIframeAPIReady()
{
for(j=0;j<tam2;j++)
{
var nombre="player"+j;
player = new YT.Player(nombre,
{
height:'300',
width:'580',
videoId:arrayJS[j],
events: {'onStateChange': onPlayerStateChange.bind(null, arrayJS, j)}
});
k++;
}
}
function onPlayerStateChange(ary, idx, event)
{
if (event.data == YT.PlayerState.ENDED)
{
console.log(k);
$.ajax
({
async:true,
type: "POST",
url:'v.php',
data:
{
idvideo:arrayJS[k],
titlevideo:arrayT[k]
},
success:function envio(deVuelta)
{
alert(deVuelta);
},
timeout:30000,
error:function()
{
alert("Ocurrio un error");
}
});
}
}