-1

我不明白为什么会这样:

myVid1=document.getElementById("video1");
var trigger = 5;
var timecheck = myVid1.currentTime;


if(timecheck==trigger){
alert("AWESOME");
};

不工作。肯定会在 5 秒时触发 if 语句?我的意思是,我不明白为什么它也不能这样工作:

if(myVid1.currentTime=="5"){
    alert("AWESOME");
    };
4

1 回答 1

1

我看到该代码至少有两个问题:

  1. 您似乎只执行了if一次语句,因此如果在该一次检查期间媒体恰好不在您想要的时间,那么条件自然会是错误的。MediaController几乎可以肯定,您可能想要响应视频相关联的事件之一timeupdate

  2. 您正在寻找的值正好是 5. 但是你碰巧准确地捕捉到 value的几率并不高5。请记住,这currentTime是一个浮点数。建议寻找myVid1.currentTime > 5五秒后的任何时间,或者myVid1.currentTime >= 5 && myVid1.currentTime < 6如果您只想要五秒内的时间。

所以像:

myVid1=document.getElementById("video1");
var trigger = 5;
myVid1.controller.addEventListener('timeupdate', function() {
    if (myVid1.currentTime >= trigger) {
        // Do something, note that this will happen again and again unless
        // you set a flag or remove the handler
    }
});
于 2013-02-12T17:46:29.137 回答