我知道这是一个在网络上涉及很多的话题,但我现在真的很沮丧。
我正在使用 ASP 3.5,当用户单击我网站上的按钮时,我想播放音频 .wav 文件。应该很简单吧?
这是我的代码:
这个 JavaScript 函数被放置在一个 asp:Content 块中。我已经验证它是正确的,其他js函数都可以工作。
function playSound() {
document.getElementById("soundDummy").innerHTML = "<embed src='file.wav' autostart=true loop=false volume=100 hidden=true>";
return true;
}
soundDummy 是一个没有任何内容的随机 div。
但是,按钮是在我后面的代码中生成的。
audioScript = "<input type=\"image\" src=\"images/Audio_Icon_Small.jpg\" onclick=\"playSound('" + person.audioName + ".wav')\" style=\"border-width:0px;\" />";
我这样做是因为它是一个有很多不同人“个人资料”的网站,可以这么说,我希望一个人能够点击一个按钮并听到一个与他们相关的 .wav 文件。
当我单击按钮时,页面只是刷新,没有播放。有什么建议么?
编辑:抱歉,我在按钮内传递参数存在一些差异,并且我的 playSound() 没有采用方法。我在玩 playSound() 方法并对其进行了更改,因此它现在不需要参数,但想象一下它确实如此。
Edit2:再次道歉,但使用 Response.Write(audioScript) 将音频脚本写入页面
Edit3:好的,想通了!我认为这是由于我自己的愚蠢,对所有试图帮助我的人感到抱歉(尤其是乔希:/)
所以问题是我的 Response.Write(audioScript) 使我的按钮不在我的 soundDummy div 中。出于某种原因,我认为我可以将我的按钮生成放在一个不同的 div 中,而不是我从我的 javascript 函数中嵌入 html 的那个。所以现在它看起来有点像这样:
<div style="text-align: center">
<p>
<div id="soundDummy">
<% Response.Write(audioScript); %>
</div>
相对于:
<div id="soundDummy"></div>
<div style="text-align: center">
<p>
<% Response.Write(audioScript); %>
如果有人能告诉我为什么第一个有效,而第二个无效,那就太好了!但就目前而言,我很高兴它终于发出了声音:)。