小编Xan*_*iuM的帖子

等待“结束”的视频事件侦听器未触发

在我的主页上,我有以下视频标签:

<video id="player" autoplay="" controls="" loop="" muted="" preload="auto"
style="background:black;max-height:420px;" src="/videos/f_latest.mp4" type="video/mp4">
</video>
Run Code Online (Sandbox Code Playgroud)

然后在页面底部的末尾<script>之前我有这个 JavaScript <body>

var player = document.getElementById('player');
var firstVideo = Math.round(Math.random()); // Returns 0 or 1 to choose which
                                            // video to display first

if (firstVideo) player.setAttribute("src", "/videos/t_latest.mp4");

player.addEventListener('ended',onVideoEnd,false); // The offending event listener
function onVideoEnd(e) {
    if (player.getAttribute("src") == "/videos/f_latest.mp4")
        player.setAttribute("src", "/videos/t_latest.mp4");
    else player.setAttribute("src", "/videos/f_latest.mp4");
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我无法让事件侦听器触发,尽管onVideoEnd('ended')在浏览器控制台中运行完全正常并且按照我想要的方式运行。

奇怪的是,我可以获得几乎相同的代码在不同的页面上工作:

<video src="" autoplay id="player" onclick="document.getElementById('pause').click()">
</video>
Run Code Online (Sandbox Code Playgroud)

然后就在下面<script>

var player = …
Run Code Online (Sandbox Code Playgroud)

html javascript event-listener addeventlistener

0
推荐指数
1
解决办法
1920
查看次数