我想要实现的功能是根据下拉菜单中所选择的内容不同,在点击播放按钮时可以播放不同的音乐
大致代码如下:
(1)HTML
<select name="select" class="reg_tdform_2" id="sel1" onChange="changeSound();">
        <option selected="selected" value="<%=basePath%>sound/111.wav">报警声音1</option>
        <option value="<%=basePath%>sound/222.wav">报警声音2</option>
        <option value="<%=basePath%>sound/333.wav">报警声音3</option>
        <option value="<%=basePath%>sound/444.wav">报警声音4</option>
        <option value="<%=basePath%>sound/555.wav">报警声音5</option>
      </select>
      <embed id="alert" src="<%=basePath %>sound/111.wav" loop="false" autostart="false"  mastersound hidden="true" type="application/x-mplayer2" ></embed>
      <img src="<%=basePath %>img/30.gif" width="15px" height="15px" onclick="playSound('play');"/>      
(2)JavaScript <script type="text/javascript">
  function changeSound(){
    var obj = document.getElementById("sel1");
    document.write("原本的路径是:"+document.getElementById("alert").src);
   selindex = obj.selectedIndex;  
   document.write("选择了第"+selindex+"个选项");
   sndsrc = obj.options[selindex].value; 
   document.write("该声音的路径是:"+sndsrc);
   document.getElementById("alert").src = sndsrc;
  }
 </script>
 <script type="text/javascript">
     function playSound(action){
     var soundControl = document.getElementById("alert");
     if(action=="play"){
     soundControl.play();
     }
     }
    </script>
在下有两个问题想要求助大侠们:
1.点击播放音乐时,只有IE的好用 chrome FF都要求安装插件 可是这插件又死活安装不上。。
采用的是wav格式的音乐,不知道是不是embed标签里的type属性设置的不对。bgsound也用过,可是三种浏览器全都不好使。。
而且如果把音乐换成.mid格式的,三种都无法播放。
2.选择不同音乐时,触发“changeSound()”函数,chrome、FF都可以打印出我在JS里面要求打印的东西
但是IE却在obj.selectedIndex;处报错:SCRIPT5: 拒绝访问。
实在搞不懂这两个问题是怎么回事,还请各位大侠帮帮忙啊!~!!

解决方案 »

  1.   

    embed 是完整的吗?
    先要保证能使用,再加上你的代码
      

  2.   

    所谓完整是指有结尾标签吗?我是这样写的 你看对不?而且它在IE中是可以正常运行的
    <embed id="alert" src="<%=basePath %>sound/111.wav" loop="false" autostart="false"  mastersound hidden="true" type="application/x-mplayer2" ></embed>
          <img src="<%=basePath %>img/30.gif" width="15px" height="15px" onclick="playSound('play');"/>     
      

  3.   

    好吧 木有人回答。。那我换个问题吧
    <select name="select" class="reg_tdform_2" id="sel1" onChange="changeSound(this.value);">
            <option selected="selected" value="<%=basePath%>sound/111.wav">报警声音1</option>
            <option value="<%=basePath%>sound/222.wav">报警声音2</option>
            <option value="<%=basePath%>sound/333.wav">报警声音3</option>
            <option value="<%=basePath%>sound/444.wav">报警声音4</option>
            <option value="<%=basePath%>sound/555.wav">报警声音5</option>
          </select>
          <script type="text/javascript">
      function changeSound(sndsrc){
       document.getElementById("alerttttt").src = sndsrc;
       window.onload=changeSound;
      }
     </script>
          <embed id="alerttttt" src="<%=basePath %>sound/111.wav" loop="false" autostart="false"  mastersound hidden="true" type="application/x-mplayer2" >
          <script type="text/javascript">
         function playSound(){
         var soundControl = document.getElementById("alerttttt");
             document.getElementById("display").style.display="block";
             document.getElementById("display").innerHTML = soundControl.src;
         soundControl.play();    
        
         }
        </script>
          </embed>
          
          <img src="<%=basePath %>img/30.gif" width="15px" height="15px" onclick="playSound('play');"/>
          <div style="display:none" id="display"></div>      
          </td>
          
        </tr>
    明明可以在id="display"处的div上显示src的路径发生了变化,可是为什么一播放还是111.wav的声音呢???