dacracots のコードはきれいな基本的な dom ですが、何も考えずに書かれているのではないでしょうか? もちろん、最初に以前の埋め込みの存在を確認し、重複した埋め込み作成行を保存します。
var soundEmbed = null;
//=====================================================================
function soundPlay(which)
{
if (soundEmbed)
document.body.removeChild(soundEmbed);
soundEmbed = document.createElement("embed");
soundEmbed.setAttribute("src", "/snd/"+which+".wav");
soundEmbed.setAttribute("hidden", true);
soundEmbed.setAttribute("autostart", true);
document.body.appendChild(soundEmbed);
}
やや似たような状況の解決策を探しているときに、ここで考えに出会いました。残念ながら、私のブラウザ Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.15) Gecko/2009102814 Ubuntu/8.04 (hardy) Firefox/3.0.15 はこれを試すと死んでしまいます。
最新のアップデートをインストールした後も、Firefox はクラッシュしますが、Opera は存続します。