これはウェブ上で多く取り上げられているトピックであることは知っていますが、今は本当にイライラしています。
ASP 3.5を使用していますが、ユーザーがWebサイトのボタンをクリックしたときにオーディオ.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;\" />";
これを行うのは、さまざまな人の「プロファイル」がたくさんあるWebサイトで、ボタンをクリックして、それらに関連付けられた.wavファイルを聞くことができるようにするためです。
ボタンをクリックすると、ページが更新され、何も再生されません。助言がありますか?
編集:申し訳ありませんが、ボタン内のパラメーターを渡しており、playSound()がメソッドを使用していないという不一致があります。私はplaySound()メソッドで遊んでいて、今はパラメーターを受け取らないように変更しましたが、そうなると想像してみてください。
Edit2:もう一度お詫びしますが、audioScriptはResponse.Write(audioScript)を使用してページに書き込まれます
Edit3:わかりました、わかりました!それは私自身の愚かさによるものだと思うので、私を助けようとしたすべての人(特にジョシュ:/)に申し訳ありません
そのため、問題は、ボタンを作成するResponse.Write(audioScript)がsoundDummydivにないことでした。何らかの理由で、ボタンの生成をjavascript関数からhtmlを埋め込んだものとは別のdivに配置できると考えていました。これで、次のようになります。
<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); %>
最初のものが機能する理由を誰かが教えてくれても、2番目のものが機能しない場合は、それは素晴らしいことです!しかし、今のところ、私はそれが最終的に音を出すことを嬉しく思います:)。