Javascript 在IE中,脚本不';不能更改div的innerhtml

Javascript 在IE中,脚本不';不能更改div的innerhtml,javascript,html,internet-explorer,audio,embed,Javascript,Html,Internet Explorer,Audio,Embed,我正在制作一个函数,在单击歌曲标题时更改嵌入标记的来源。这适用于Chrome和Firefox,但不适用于Internet Explorer 以下是函数: function loadSong(title) { var wav = "samples/" + title + ".wav"; var ie = "<embed id='ie' src='" + wav + "'></embed>"; if (/MSIE (\d+\.\d+);/.test(n

我正在制作一个函数,在单击歌曲标题时更改嵌入标记的来源。这适用于Chrome和Firefox,但不适用于Internet Explorer

以下是函数:

function loadSong(title) {
    var wav = "samples/" + title + ".wav";
    var ie = "<embed id='ie' src='" + wav + "'></embed>";
    if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) { 
        //test for MSIE x.x
        var newSong = document.getElementById("playerwrapper")
        newSong.innerHTML = ie;
    } else {
        var audio = document.getElementById("audio");  
        audio.pause();
        audio.src = wav;
        audio.play();
    }
}
函数加载歌曲(标题){
var wav=“samples/”+title+“.wav”;
var ie=“”;
如果(/MSIE(\d+\.\d+;/.test(navigator.userAgent)){
//MSIE x.x的测试
var newSong=document.getElementById(“playerRapper”)
newSong.innerHTML=ie;
}否则{
var audio=document.getElementById(“音频”);
audio.pause();
audio.src=wav;
音频播放();
}
}
是的,我在Chrome和Firefox中尝试了嵌入式播放器,我在IE中尝试了在m4a文件中使用html5音频元素(源代码的更改方式与Chrome和Firefox中的相同)

接下来,这是音频播放器本身(包括整个内容以防万一;如果与此无关,请道歉):


他是个婊子,不是吗

如果
对象的源已更改,IE不会重新加载该对象。它仅在页面加载时加载,句点

那么如何解决这个问题呢?简单:克隆现有元素,删除旧元素,然后追加新元素。例如:

// innerHTML bla bla bla
newS = newSong.cloneNode( true ) // Deep copy
newSong.parentNode.replaceChild( newS, newSong )
<p onclick='loadSong("songtitle")'>Song Title</p>
<p onclick='loadSong("anothersongtitle")'>Another Song Title</p>
<p onclick='loadSong("doomkittiesofmars")'>Doom Kitties of Mars</p>
// innerHTML bla bla bla
newS = newSong.cloneNode( true ) // Deep copy
newSong.parentNode.replaceChild( newS, newSong )