【发布时间】:2020-10-10 15:40:44
【问题描述】:
我有一个非常简单的 JavaScript 函数,它循环播放音频文件夹中的一些歌曲。但是,下面的代码产生:
Uncaught ReferenceError: playJoin is not defined
即使它应该被定义为一个函数?我通过验证器运行它,它在语法上是正确的。我遇到的另一个问题是导入音频。即使我更改了文件路径,它也不会更新,即使清除缓存也是如此。
Path: /audio/join-page-audio1.mp3, Status Code: 404 Not Found
有问题的完整代码块如下:
<audio id="join1">
<source src="/src/audio/join-page-audio1.mp3" type="audio/mpeg">
</audio>
<script>
number = 1
joinSong = "join" + number
function playJoin() {
let fn = function(number) {
let joinSong = "join" + number;
let audio = document.getElementById(joinSong);
audio.play();
audio.onended = function() {
if (number <= 1) {
fn(number + 1);
} else {
fn(1);
}
}
};
fn(1);
}
</script>
所有这些都在 HTML 头中,并被 body 的 onload 事件调用。
【问题讨论】:
-
第一个问题... fn(1) 由于其闭包范围而无法访问。
-
@sandeepjoshi 我编辑的更好吗?它仍然无法显示为什么根本没有定义 playJoin。
-
这段代码是内联的还是外部的JS文件?如果是外部的,你是使用
async还是defer来加载文件? -
它是内联的(HTML 文件中的
<script>)。我在问题中提到了这一点。 -
我发现我编辑了错误的文件。无论如何,有没有办法在没有
$(window).on("load", function() {});的情况下自动播放窗口的音频加载?由于自动播放视频等方面的新更新,它一直说Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.。
标签: javascript html