我想在每一行创建一个包含字符串和按钮(播放声音)的表格,每个按钮播放不同的声音。
我想用这种方法做到这一点:
<script>
function EvalSound(soundobj) {
var thissound=document.getElementById(soundobj);
thissound.Play();
}
</script>
<embed src="success.wav" autostart=false width=1 height=1 id="sound1"
enablejavascript="true">
这是按钮:
<form>
<input type="button" value="Play Sound" onClick="EvalSound('sound1')">
</form>
问题是我想在这里:
<input type="button" value="Play Sound" onClick="EvalSound('sound1')">
写入文件URL而不是'sound1',可以这样做吗?或者我需要更改代码中的其他内容?
我像这样构建脚本:
<script>
function EvalSound(soundobj) {
var embed = document.createElement('embed');
embed.setAttribute('width',1);
embed.setAttribute('height',1);
embed.setAttribute('src',soundobj);
embed.setAttribute('autostart', false);
embed.setAttribute('enablejavascript', true);
embed.Play();
}
</script>
并将其称为:
<form>
<input type="button" value="Play Sound" onClick="EvalSound('sound url')">
</form>
它仍然没有发出声音。
答案 0 :(得分:5)
您可以按照以下方式实现:
参考博客How to Play a Sound on Click or on MouseOver
<script language="javascript" type="text/javascript">
function playSound(soundfile) {
document.getElementById("dummy").innerHTML=
"<embed src=\""+soundfile+"\" hidden=\"true\" autostart=\"true\" loop=\"false\" />";
}
</script>
在网页
<span id="dummy"></span>
<a href="#" onclick="playSound('URL to soundfile');">Click here to hear a sound</a>
<p onmouseover="playSound('URL to soundfile');">Mouse over this text to hear a sound</p>
答案 1 :(得分:1)
注意:这不是HTML5。
您可以使用thissound.src
获取来源。然后,您可以将它添加到DOM中,无论您想将它放在哪个位置。
答案 2 :(得分:0)
您可以使用javascript框架来简化代码。看一下Scriptaculous页面:
http://madrobby.github.com/scriptaculous/sound/
据我所知,'jQuery'的声音不是很好,不过,我想有插件可供选择。
然后你可以把你的声音文件作为链接或'rel'链接,在按钮上放置观察者并用非常干净的HTML和一些脚本来播放它们。