当一个不断变化的元素变成某个值时,我试图调用一个函数。
当player.getCurrentTime() >= 0.95 * player.getDuration()
我要拨打handleEvent()
时。最好的方法是什么?
这是我尝试的最新版本:
window.onLoad=function() {
var player = document.getElementById("movie_player");
player.addEventListener("customEvent", handleEvent(), false);
function handleEvent() {
// do something here
}
var myEvent = new CustomEvent("customEvent", {
detail: {
time: 0.95 * getDuration()
}
});
document.body.dispatchEvent(myEvent);
}
我将如何做到这一点?
答案 0 :(得分:1)
您已经在使用自定义事件,并且该代码似乎接近正确,只需删除括号或我怀疑它是否有效:
player.addEventListener("customEvent", handleEvent, false);
答案 1 :(得分:1)
我猜您正在使用YouTube播放器。根据{{3}},您可以使用YT.PlayerState.PLAYING
事件来跟踪getCurrentTime()
。看看下面的代码:
player.addEventListener(YT.PlayerState.PLAYING, onVideoPlaying, false);
function onVideoPlaying(){
console.log('video is playing');
if (player.getCurrentTime() >= 0.95 * player.getDuration()){
console.log('Here I am!');
// do Something
}
}
另外,我认为你不需要自己dispatchEvent
,因为如上所述,player
已经发送了一个你可以利用的不断变化的事件。
如果有任何不清楚或者我错过了任何细节,请告诉我。