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文档里只可以执行一次呢?或者我哪里做的不对,恳请各位大哥帮忙看一下,以解大学生当下之急。

在不同的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);
}
}


document.write在整个html文档里只可以执行一次呢?答案是:不是的,你可以任意调用多次。
分析了下你之所以感觉只会调用一次,可能是你只是触发了一次这个操作而已。

你的问题不在于document.write()是不是在文档里面只能执行一次. 而是,你的index发生改变的时候,不会去触发这个document.write()事件,
把document.write()写入你的触发index改变事件函数里面,就可以达到你想要的的效果.

但是, document.write()在页面加载完毕之后调用,会重写整个页面,就是你的body可能直接被document.write()要写入的内容给覆盖.

所以你可以选择用其他的方法来插入这个标签. 希望这个会有帮助,贴一段示例代码吧.

    <input type="button" value="index" id="btn">
    <script>
        var index = 0
        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;


        document.getElementById('btn').onclick = function () {
            if (index < 9) {

                index++
            } else {
                index = 0
            }

            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音乐
            }


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