html代码:<embed src="upload/1.mp3" autostart="false" id="mp"></embed>
<a href="#" onclick="ch()" id="start">改变播放文件</a>js代码://mp3播放
function ch()
{
mp3 = document.getElementById("mp");
mp3.src = 'upload/5.mp3';
alert('mp3.src = ' + mp3.src);
mp3.play();
}
当我最后用 mp3.play() 时,为什么播放的还是 1.mp3的声音呢?我哪里写错了呢?谢谢大家!

解决方案 »

  1.   

    mp3.src = 'upload/5.mp3';
    是无效的
      

  2.   

    我又改成如下形式:html:
    <object id="mp" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
    <param name="invokeURLs" value="false" />
    </object>js:
    //mp3播放
    function ch()
    {
    mp3 = document.getElementById("mp");
    mp3.url = 'upload/5.mp3';
    //alert('mp3.src = ' + mp3.url);
    mp3.Play();
    }声音是能播放了,但是 提示 mp3.play() 这里有错误,对象没有此属性和方法,郁闷了,请指教下!
      

  3.   

    function ch(){
    var mp3 = document.getElementById("mp"), _mp3 = document.createElement('embed');
    _mp3.autostart = false;
    _mp3.id = mp3.id;
    _mp3.src = 'upload/5.mp3';
    mp3.parentNode.replaceChild(_mp3, mp3);
    _mp3.play();
    }
      

  4.   

    谢谢,搞定了。可是 xfsnero 兄,如果考虑浏览器兼容性呢? 比如FF,grome,opera 之类