为网页添加活动的背景音乐

网络整理 - 07-27
 在浏览网页时,你肯定遇到过有背景音乐的网页。在美妙的音乐中
漫步于Internet的无限空间,真可谓美哉!但是背景音乐只能是一支曲
目,未免美中不足。如果网页的背景音乐可以让访问者在预定的多支曲
目中任意选择,成为一种活动的背景音乐,相信会有更多的访问者愿意
驻足其中。其实,我们可以用JavaScript脚本程序编写一个更换背景音
乐的程序,实现网页中背景音乐的任意选择,让你的网页更引人入胜。
下面先说明一下程序的设计思想和实现方法,后面奉上注释完整的示例
程序,相信大家会很快成为网页活动背景音乐的行家里手。
    一、设计思想和实现方法
    1.首先在HTML中建立<EMBED>嵌入标记,嵌入可供选择的曲目文件,
*.wav、*.au、*.mid等,代码如下:
    <EMBED SRC="曲目1的声音文件" Loop=-1
         AUTOSTART=false Hidden=true MASTERSOUND>
    <EMBED SRC="曲目2的声音文件" Loop=-1
         AUTOSTART=false Hidden=true MASTERSOUND>
    代码中      Loop=-1        让曲目重复播放
           AUTOSTART=false     禁止曲目嵌入后自动播放
              Hidden=true      将其隐藏起来,不可见
    2.借助<SELECT>...</SELECT>和<OPTION>...</OPTION>建立供选择
曲目的下拉列表框,
   <form width=300>
     <select size=1 >
     <option VALUE="0" SELECTED>------无------</option>
     <option VALUE="1">曲目1</option>
     <option VALUE="2">曲目2</option>
   </form>
    3.转到HTML文档的<HEAD>标记中编写实现曲目更换的函数,具体如下:
    function my_sound()
       {
       if (msie4) //是否为IE 4.0以上版本
          {
          if (document.my_music.opt.value=="1")   //选择曲目1
             {
             document.NAME2.stop();  //关闭另一支曲目
             document.NAME1.play();  //播放曲目
             }
          else
            {
            if (document.my_music.opt.value=="2")  //选择曲目2
               {
               document.NAME1.stop();
               document.NAME2.play();
               }
            else   //取消背景音乐
               {
               document.NAME1.stop();
               document.NAME2.stop();
               }
            }
          }
      }
    上述程序是在IE浏览器中的实现方法,如果要求同时适用Netscape只需增
加少量的判断语句,播放语句改为document.NAME.run()即可。
    4.在HTML文档的<BODY>标记中增加,对浏览器认证变量
msie4(可自由设定变量名)进行初始化,满足程序对浏览器的要求,防止在浏览
器达不到要求时出现异常。

    二、注释详尽、程序完整的示例程序清单

<html>
<head>
<title>活动背景音乐</title>

<script language="JavaScript">
<!--
  var msie4=false;

  //定义检测浏览器的函数
  function check_ok()
     {
     var nav=window.navigator.userAgent;
     var ie_ok=nav.indexOf("MSIE");
     if (ie_ok>0)  //是Microsoft Internet Explorer
        msie4=parseInt(nav.substring(ie_ok+5,nav.indexOf(".",ie_ok)))>=4; // IE 4.0以上版本
     }

  //定义更改背景音乐的函数
  function my_sound()
     {
     if (msie4) //是否为IE 4.0以上版本
        {
        if (document.my_music.opt.value=="1")   //选择曲目1
           {
           document.music2.stop();  //关闭另一支曲目
           document.music1.play();  //播放曲目
           }
        else
          {
          if (document.my_music.opt.value=="2")  //选择曲目2
             {
             document.music1.stop();
             document.music2.play();
             }
          else   //取消背景音乐
             {
             document.music1.stop();
             document.music2.stop();
             }
          }
        }
    }
//-->
</script>
</HEAD>

<BODY >

<embed src="01.mid" loop=-1 autostart=false hidden=true mastersound>
<embed src="02.mid" loop=-1 autostart=false hidden=true mastersound>

<h1>活动的背景音乐,请您自由选择</h1>

<form width=300>
  <select size=1 >
  <option VALUE="0" SELECTED>------无------</option>
  <option VALUE="1">曲目1</option>
  <option VALUE="2">曲目2</option>
</form>

</body>
</html>    

    说明:
    1、check_ok函数中的 var ie_ok=nav.indexOf("MSIE");是检测浏览器名
称中是否含有“MSIE”,以此判定是否为IE浏览器;
    2、my_sound函数中 if (document.my_music.opt.value=="2") 对选择的
曲目进行判定,其标准格式为
    if (document.表单名.SELECT对象名.value==option中设定的value值)
    3、上面的程序是以两首曲目为例编写的,各位可以按上面介绍的方法自行
修改程序,增减可供选择的曲目;
    4、如果在应用中存在问题或不明之处请访问