我正在创建自己的音频元素控制器。在Chrome和Opera中,此代码为:
audio.addEventListener("timeupdate", seekTimeUpdate, false);
似乎在页面加载时调用seekTimeUpdate
,导致显示时间文本。对于Firefox和IE11来说并非如此,我必须独立调用它。
为什么呢?我知道javascript在不同浏览器中的工作方式存在差异,但了解更多信息会很有用。
违规功能:
function seekTimeUpdate() {
var nt = audio.currentTime * (100/audio.duration);
seekSlider.value = nt;
var curMins = Math.floor(audio.currentTime / 60);
var curSecs = Math.floor(audio.currentTime - curMins * 60);
var durMins = Math.floor(audio.duration / 60);
var durSecs = Math.floor(audio.duration - durMins * 60);
if (curSecs < 10) curSecs = "0"+curSecs;
if (durSecs < 10) durSecs = "0"+durSecs;
if (nt==0) {
timeTxt.innerHTML = durMins+":"+durSecs;
} else {
timeTxt.innerHTML = curMins+":"+curSecs;
}
}