我正在动态创建音频控件并尝试在带控件的表单上显示它。我在表格上有div(我用div,td,span试过它)我很肯定我的id是正确的。我正在使用appendChild(音频)。如果我在函数结束前放置一个alert(),音频控件将开始播放该文件。一旦功能退出,音频播放器就会停止,我从不会看到控件显示。我错过了什么?很明显,音频变量失去了范围,不再有效。但为什么我不能将它附加到我的div,td或span? (我在firefox中,所以它正在玩ogg)
编辑 - 我想我应该提到这是从
调用的HTML:
<a onclick="CreateAudio($oggfile, $id)">Play</a>
的javascript:
function CreateAudio(oggfile, id)
{
var audio = document.createElement('audio');
var source= document.createElement('source');
source.type= 'audio/ogg';
source.src= oggfile;
audio.appendChild(source);
mp3file = oggfile; // I will fix this to replace ogg extension with mp3
source= document.createElement('source');
source.type= 'audio/mpeg';
source.src= mp3file;
audio.appendChild(source);
var div = document.getElementById(id);
div.appendChild(audio);
audio.load;
audio.play();
}
答案 0 :(得分:1)
您最初创建的音频元素在功能完成时会失去范围。您需要访问DOM中的音频元素。
audio.setAttribute("id", "myAudioClip")
var div = document.getElementById(id);
div.appendChild(audio);
var audioElement = document.getElementById("myAudioClip");
audioElement.load();
audioElement.play();