0

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

}
4

1 回答 1

1

函数完成后,您最初创建的音频元素将失去作用域。您需要访问 DOM 中的音频元素。

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

audioElement.load();
audioElement.play();
于 2013-09-14T05:00:33.943 回答