appendChild不使用音频控件

时间:2013-09-14 04:48:43

标签: javascript audio appendchild

我正在动态创建音频控件并尝试在带控件的表单上显示它。我在表格上有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();

}

1 个答案:

答案 0 :(得分:1)

您最初创建的音频元素在功能完成时会失去范围。您需要访问DOM中的音频元素。

audio.setAttribute("id", "myAudioClip")
var div = document.getElementById(id);
div.appendChild(audio);
var audioElement = document.getElementById("myAudioClip");

audioElement.load();
audioElement.play();