你的程序有点问题吧?况且“EMBED”控件也有它的特殊性,用下面这个看看:<form id=form1 name=form1>
.
<EMBED src="1.mid" width=500 height=100 autostart=1 loop=true id=BgSound name=BgSound></EMBED>
.
<SELECT NAME="music" onchange="javascript:BgSound.removeNode(true);emb=document.createElement('embed');emb.id='BgSound';emb.src=this.value;emb.loop='true';document.body.insertAdjacentElement('afterBegin',emb);">
<OPTION VALUE="1.mid">1.mid</OPTION>
<OPTION VALUE="2.mid">2.mid</OPTION>
<OPTION VALUE="3.mid" selected>3.mid</OPTION>
.
</SELECT>
</form>

解决方案 »

  1.   

    //<EMBED src=' + document.form1.music.value + ' width=500 height=100…… 加载页面时,form1.music.value 总是个固定值,因此没有必要象上面那样写,给个固定的源文件地址就行了。//document.form1.BgSound.innerHTML="<EMBED src='" + document……innerText属性用来定义标签对象所要输出到屏幕的文本。
    innerHTML属性,除了有innerText的作用外,还可改变标签对象所包含的HTML标签。
    outerHTML则包含对标签本身的更改。