如何用javascript切换广播电台

时间:2012-03-24 07:41:17

标签: javascript html

我是编程新手,并试图让这项工作成功。我想为用户提供选择他们想听的广播电台的选项...这是我想出的,但是不工作,任何帮助都表示赞赏:

<script language="javascript" type="text/javascript">
    // You can place JavaScript like this
    document.getElementById("radiostations").selectedIndex = 0;
    document.getElementById("radiostations").onchange = resetStation;
    function resetStation(){
            objPlayer = document.getElementById("mediaPlayer");
            // obj.Settings.volume = 75
            newStation = document.getElementById("radiostations");
            objPlayer.URL=newStation.options[newStation.selectedIndex].value;          // playback this file
            objPlayer.controls.play();                                                  // play what ever file is loaded

    }

</script>

<form name="mediaPlay">
    <select name="radiostations" size="1">
        <option selected  value="http://listen.radionomy.com/smoothmusicradio">Smooth Music</option>
        <option value="http://www.urbanhotradio.com/hiphop/music/stream.asx">Hip-Hop</option>
        <option value="http://www.orsradio.com/asx/rnbclassic.asx">R&B Soul</option>
    </select>
    <noscript>
        <input type="button" value="Play Now!"
        onClick="location=document.mediaPlay.radiostations.options
        [document.mediaPlay.radiostations.selectedIndex].value">
    </noscript>
</form>


<OBJECT ID="MediaPlayer" WIDTH="100%" HEIGHT="100" CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"
    STANDBY="Loading Windows Media Player components..." TYPE="application/x-oleobject">
    <PARAM NAME="FileName" VALUE=newStation.options[newStation.selectedIndex].value>
    <PARAM name="ShowControls" VALUE="true">
    <param name="ShowStatusBar" value="true">
    <PARAM name="ShowDisplay" VALUE="false">
    <PARAM name="autostart" VALUE="false">
    <EMBED TYPE="application/x-mplayer2" SRC=newStation.options[newStation.selectedIndex].value NAME="MediaPlayer"
        WIDTH="100%" HEIGHT="100" ShowControls="1" ShowStatusBar="1" ShowDisplay="0" autostart="0"> 
    </EMBED>
</OBJECT>​

1 个答案:

答案 0 :(得分:1)

我不确定这些是否是唯一的问题,但是你的JS有两个明显的问题:

  1. 您正在使用document.getElementById("radiostations")来引用您的select元素,但该元素没有id属性 - 您需要将id="radiostations"添加到标记中:

    <select id="radiostations" name="radiostations" size="1">

  2. 您的脚本块在表单之前,因此当JS运行时浏览器尚未解析select - 因此它将无法访问select元素(即使在您修复了id问题之后) )。您可以通过将脚本块移动到正文的底部(或至少在select元素之后的某个位置)和/或将代码放在onload处理程序中来解决此问题。

  3. (另外我注意到你的<noscript>块里面有一个试图使用JavaScript的按钮 - 这不会起作用......)