Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.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在鼠标上方播放声音_Javascript_Html - Fatal编程技术网

使用JavaScript在鼠标上方播放声音

使用JavaScript在鼠标上方播放声音,javascript,html,Javascript,Html,伙计们,我正试着在按钮上播放声音。我试着通过例子来阅读,但似乎不起作用。这是我现在的代码: <audio id="mySoundClip"> <source src="/sound/c_but.mp3" type="audio/mp3" /> </audio> <script type="text/javascript"> var mysound = document.getElementById("mySoundClip"); &l

伙计们,我正试着在按钮上播放声音。我试着通过例子来阅读,但似乎不起作用。这是我现在的代码:

<audio id="mySoundClip">
  <source src="/sound/c_but.mp3" type="audio/mp3" />
 </audio>
<script type="text/javascript">
    var mysound = document.getElementById("mySoundClip");
</script>
<div class="whole">
<div id="social">
    <a href="#"><img name="faceb" src="img/social/up_fb.png" width="40" onMouseOver="faceb.src='img/social/o_fb.png'; mysound.play();" onMouseOut="faceb.src='img/social/up_fb.png'" class="soc"/></a>
    <a href="#"><img name="goobu" src="img/social/up_gb.png" width="40" onMouseOver="goobu.src='img/social/o_gb.png'" onMouseOut="goobu.src='img/social/up_gb.png'" class="soc"/></a>
    <a href="#"><img name="myspa" src="img/social/up_ms.png" width="40" onMouseOver="myspa.src='img/social/o_ms.png'" onMouseOut="myspa.src='img/social/up_ms.png'" class="soc"/></a>
    <a href="#"><img name="twitt" src="img/social/up_tw.png" width="40" onMouseOver="twitt.src='img/social/o_tw.png'" onMouseOut="twitt.src='img/social/up_tw.png'" class="soc"/></a>
</div>
</div>


如你所见,将鼠标悬停在第一张图片上,facebook链接会触发我的声音。。但事实并非如此。这是我的链接,你能帮忙吗?我做错了什么?

您已经用firebug检查过脚本执行了吗

只是一个猜测,但您的处理函数说:

faceb.src='img/social/o_fb.png';
可能该上下文中不存在变量“faceb”,您应该通过dcument.getElmentById获取该元素。
如果是这种情况,当然会引发异常,并且第二个命令(mysound.play())不会执行。

Firefox当前不支持您想要的
音频标记方式。来自MDN:

注意:目前,Gecko只支持Ogg容器中的Vorbis以及WAV格式。此外,服务器必须使用正确的MIME类型为文件提供服务,以便Gecko正确播放该文件

要在Firefox中工作,您可以检测Firefox并将文件类型切换为Ogg或WAV文件格式,这将起作用。我建议你也去看看音频库


我认为问题在于您的源文件是MP3文件,无法在Firefox中直接播放:


Firefox不支持mp3文件。您应该改用ogg格式

我在上找到了一个例子

当您将鼠标指针放在图像上时,会播放mp3文件


只需在页面上单击鼠标右键并选择“查看源代码”,即可查看用于实现此功能的编码。

是的,请忘记我的第一个猜测,当然该变量是由name属性定义的。这可能是缺乏html5支持?音频元素对HTML5来说是新的,并且还不是每个浏览器的标准功能。正如比约德所说,谷歌Chrome运行良好。就我而言,在html5音频功能之前,没有办法用javascript播放声音。一个解决办法是用flash实现这一点。我会使用一个支持flash的库作为后备。正如该链接所讨论的,jPlayer是一个选项。事实上,另一个选择是在Firefox上有两个文件,一个是MP3,另一个是OGG。请参见此处:上述页面适用于Firefox(Mac)、Safari(Mac)、Opera(Mac)和Internet Explorer(Windows XP在Mac中的虚拟机上运行)。这个问题与此密切相关: