你喜欢就好了 2019-06-30 02:36 采纳率: 100%
浏览 573
已采纳

document.write执行一次就不会再执行了吗

在写一个大学生实训用的网站时,遇到一个问题。
具体经过是这样的,我想要实现网页显示在不同的div时,播放不同的背景音乐。但是每次都发现只会播放第一个div的音乐。
主要代码如下:

            var sound1="music/page1.mp3";
            var sound2="music/page2.mp3";
            var sound3="music/page3.mp3";
            var sound4="music/page4.mp3";
            var sound5="music/page5.mp3";
            var sound6="music/page6.mp3";
            var sound7="music/page7.mp3";
            var soundx="music/text.mp3";//各个div音乐的路径写出来
            var x;
                if(index==1){
                    x=sound1;           //在第一页时播放sound1
                }else if(index==2){
                    x=sound2;          //在第二页时播放sound2
                }else if(index==3){
                    x=sound3;
                }else if(index==4){
                    x=sound4;
                }else if(index==5){
                    x=sound5;
                }else if(index==6){
                    x=sound6;
                }else if(index==7){
                    x=sound7;
                }else{            
                    x=soundx;     //测试什么时候出错的时候,播放text音乐
                }

            //写embed标签,播放背景音乐
            document.write('<embed src='+'"'+x+'"'+'hidden="true" autostart="true" loop="true">');

大概解释一下,index代表当前屏幕所在的“页”,总共有7页,也就是div1-div7,我实现了鼠标往下滑,整个网页就刚好往下滑一个屏幕大小的区域,然后屏幕上显示的div1变到div2,index+1,再往下滑,屏幕上显示的div2变到div3......,index+1,这些功能我都测试过是没有问题的。
那么现在问题来了,为什么我的网页还是可以从div1滑到其他div,但是背景音乐始终放的是sound1,我试过给index初始值为2,然后背景音乐就变成sound2,设为3变成sound3......既然如此我觉得问题还是在document.write上,是不是document.write在整个html文档里只可以执行一次呢?或者我哪里做的不对,恳请各位大哥帮忙看一下,以解大学生当下之急。

  • 写回答

3条回答 默认 最新

  • 你喜欢就好了 2019-09-14 21:51
    关注

    在不同的div里播放不同的音乐 可以采取以下方案,亲测有效。本人操作时,采用一个屏幕为一个div,鼠标滑动一次就会滑到下一个div,然后每一个div里都播放不同的音乐。感兴趣的可以试试,以下为关键代码,想要全部可以留言

    var e = document.createElement("embed");
    function bgmusic(){
    if(index==1){
    e.src="music/page.mp3";
    e.hidden="true";
    e.autostart="true";
    var object = page1.appendChild(e);
    // e.innerHTML = "";
    // document.write('');
    }else if(index==2){
    e.src="music/page2.mp3";
    e.width="0";
    e.height="0";
    e.autostart="true";
    e.loop="true";
    var object = page2.appendChild(e);
    }else if(index==3){
    e.src="music/page3.mp3";
    e.hidden="true";
    e.autostart="true";
    var object = page3.appendChild(e);
    }else if(index==4){
    e.src="music/page.mp3";
    e.hidden="true";
    e.autostart="true";
    var object = page4.appendChild(e);
    }else if(index==5){
    e.src="music/page.mp3";
    e.hidden="true";
    e.autostart="true";
    var object = page5.appendChild(e);
    }else if(index==6){
    e.src="music/page.mp3";
    e.hidden="true";
    e.autostart="true";
    var object = page6.appendChild(e);
    }else if(index==7){
    e.src="music/page.mp3";
    e.hidden="true";
    e.autostart="true";
    var object = page7.appendChild(e);
    }else if(index==8){
    e.src="music/page.mp3";
    e.hidden="true";
    e.autostart="true";
    var object = page8.appendChild(e);
    }else{
    e.src="music/text.mp3";
    e.hidden="true";
    e.autostart="true";
    var object = main.appendChild(e);
    }
    }

    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料