文件Write()覆盖所有页面内容



我知道这个问题已经被问了很多次了,所以在考虑发布之前尝试了一些事情,但最终还是出现在了这里。我现在理解了这份文件。Write()在不指向任何内容的情况下覆盖页面内容,所以我给了它一个div。

我有一个空的div,看起来像这样:

<div id="audio"></div>

我的JS现在看起来是这样的:

document.onkeydown = function() {
    var numberOfSongs = 3 
    var sound = new Array(numberOfSongs+1)
    sound[0]= "key1.mp3"
    sound[1]= "key2.mp3" 
    sound[2]= "key3.mp3"
    function randomNumber(){
    var randomLooper = -1
    while (randomLooper < 0 || randomLooper > numberOfSongs || isNaN(randomLooper)){    randomLooper = parseInt(Math.random()*(numberOfSongs+1))
    }
        return randomLooper
    }
    var randomsub = randomNumber()
    var soundFile = sound[randomsub]
    document.getElementById("audio").innerHTML ('<EMBED src= "' + soundFile + '" hidden=true autostart=true loop=true>')
}

如果它看起来有点乱,那可能是因为我刚刚开始学习JS,从C#过渡过来,所以可能只是我的语法有点偏离。

和以前一样:

document.Write ('<EMBED src= "' + soundFile + '" hidden=true autostart=true loop=true>')

在擦除页面之前,它确实播放了一个声音,现在我什么都没有得到,没有声音,HTML中也没有显示,所以我完全不知道我做错了什么。

基本上,innerHTML是一个属性而不是函数,

document.getElementById("audio").innerHTML = 
   '<EMBED src= "' + soundFile + '" hidden=true autostart=true loop=true>';

在控制台中,您应该会看到一个错误,如innerHTML不是函数

最新更新