不知道为什么setAttribute()对音频元素不起作用

时间:2019-06-01 17:38:23

标签: html audio setattribute

在我的代码中,我想设置音频元素的属性值,以便在音频文件停止播放时在段落元素中将“测试”更改为“工作”。

我知道我可以在脚本之外创建音频元素,但是我需要它做其他事情。

存在“ horse.mp3”文件是因为我正在此页面上玩,试图使其正常工作:https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_audio

<!DOCTYPE html>
<html>

<body>
  <p id="test">testing</p>
  <script>
    var audio = new Audio("horse.mp3");

    audio.setAttribute("onended", "function(){document.getElementById("
      test ").innerHTML = "
      working "}");

    audio.play();
  </script>
</body>

</html>

1 个答案:

答案 0 :(得分:0)

您不需要将onended属性包装到函数中。另外,您在属性值内使用了多个双引号。它不会工作。我已将双引号替换为单引号。

var audio = new Audio("horse.mp3");

audio.setAttribute("onended", "document.getElementById('test').innerHTML = 'working'");

audio.play();