每5秒钟随机发出一声声音

时间:2018-12-29 01:52:46

标签: javascript html audio

我试图每5秒产生一次随机声音,而我的问题是更改javascript中html中音频标签中的src(请参阅代码) 我收到这个错误 未被捕获的TypeError:无法将属性'src'设置为null

有人可以向我解释我在做什么错吗?

 (JS) 

 document.getElementById("song-generator").src = "test.mp3";


(html)

<embed
     id="song-generator"
  hidden="true"
  name="test"
  src=""
  loop="true"
  autostart="true"
/>

1 个答案:

答案 0 :(得分:0)

document.getElementById("song-generator")评估为null的事实告诉我一些可能的事情:

  1. 您的HTML中可能有一些重复的ID。
  2. HTML的某个地方存在语法错误。

如果这些问题在检查后仍然存在,那么我怀疑您在加载HTML之前正在调用getElementById。为了解决这个问题,我将JS代码包装在'load'事件的事件监听器中,如下所示:

<!-- Either put your actual JS code here, or link a script -->

<script>
  window.addEventListener("load", () => {
    //put business logic here
    document.getElementById("song-generator").src = "test.mp3";
  });
</script>

或者,您可以使用window.onload,它执行the same thing

<!-- Either put your actual JS code here, or link a script -->

<script>
  window.onload = () => {
    //put business logic here
    document.getElementById("song-generator").src = "test.mp3";
  });
</script>