javascript - 每5秒随机发出一声声音

标签 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"
/>

最佳答案

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

  • 您的HTML中可能有一些重复的ID。
  • 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>

    关于javascript - 每5秒随机发出一声声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53966066/

    相关文章:

    html - 为什么按钮元素没有显示在输入表单旁边?

    php - js 无法识别重音字符 onclick

    javascript - 如何用jquery选择最后一个元素?

    javascript - 如何在Javascript中从数组加载所有图像?

    asp.net - __doPostback - 从 JavaScript 调用事件背后的代码?

    javascript - YouTube 数据 API - 检索我的上传内容(入门教程)

    html - 当我向服务器发送表单时如何捕获我的发布请求?

    objective-c - 在 Objective-C 中播放声音之前更改 View

    c# - 使用 ffmpeg 在特定时间向 wav 文件添加静音

    javascript - 为什么不在 WordPress 的 Bootstrap 下拉列表中显示所选元素?