Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 网页加载时播放HTML音频_Javascript_Html_Audio - Fatal编程技术网

Javascript 网页加载时播放HTML音频

Javascript 网页加载时播放HTML音频,javascript,html,audio,Javascript,Html,Audio,我正在使用 <button id="collect" class="btn">button</button> <script type="text/javascript"> $('#collect').click(function(event) { event.preventDefault(); <?php if($soundFx == true){ ?> var sound = do

我正在使用

<button id="collect" class="btn">button</button>
<script type="text/javascript">
    $('#collect').click(function(event) {
        event.preventDefault();
        <?php if($soundFx == true){ ?>
            var sound = document.getElementById("collect_a");
            sound.play();
        <?php } ?>

... //script continues

</script>
哪些目标

<audio id="collect_a" src="audio/collect.wav" autoplay="false" autostart="false" preload ="none" ></audio>
所有人都应该帮忙,但没有一个人能解决我的问题,所以我想知道我做错了什么。它只是放在html页面中,所以无论是否调用,它都会自动启动吗?这些标签肯定会阻止这种情况发生吗

我尝试了一个单独的.js来调用play()函数,以及(当前)将其作为现有代码的一部分的方法,它们都可以工作,但都可以在加载时播放所有内容


非常感谢您的帮助。

删除页面中的所有javascript代码,清除缓存,查看音频是否仍然自动播放(不应该)。如果没有,则表示脚本的某些部分在没有用户交互的情况下触发播放功能

添加回javascript,并注释掉您提到的click事件处理程序。检查重新加载页面时是否仍播放音频。如果没有,就意味着有东西触发了按钮的点击事件,而点击事件又会播放音频。如果它确实播放,则表示代码的其他部分调用音频元素的play()方法

在代码中使用console.log()来跟踪执行流


或者简单地添加一个
警报('Clicked')并查看是否在您未单击按钮的情况下显示它。

我不知道PHP,但通过PHP标记中的JavaScript:

<?php if($soundFx == true){ ?>
  var sound = document.getElementById("collect_a");
  sound.play();
<?php } ?>
按钮{
字号:2rem;
边界:无;
背景:无;
光标:指针;
大纲:无;
}
⏯
.

我们需要更多的代码,您的
click()
函数是什么样子的<代码>。我认为点击(函数(事件)
并不是你的全部。此外,即使禁用了javascript,它也会自动播放吗?根本没有脚本?我编辑以添加更多信息。向我们展示一个实际的可复制示例。你的PHP是不必要的,请向我们展示它是如何进入浏览器的。这里没有足够的信息来重现你的问题。
autoplay="false" autostart="false" preload ="none"
<?php if($soundFx == true){ ?>
  var sound = document.getElementById("collect_a");
  sound.play();
<?php } ?>