Javascript document.write-Where';我的内容是什么?

Javascript document.write-Where';我的内容是什么?,javascript,function,button,Javascript,Function,Button,我用有限的HTML/JavaScript知识创建了一个简单的石头剪纸游戏。我创建了两个按钮:一个用于运行游戏,另一个用于重置游戏 单击“游戏”按钮后,它将运行我的JavaScript函数,其中包括一个提示符()和一个随机选择。宣布获胜者。然而,我注意到我所有的HTMl都消失了 为什么我的内容在哪里消失了 当用户玩游戏并在提示中输入信息时,如何使其保持不变 代码: 游戏:RPS JS测试输出 石头、布、剪刀:你vs电脑! 玩游戏 函数游戏(){ var a=提示(“石头、布或剪刀?”); var

我用有限的HTML/JavaScript知识创建了一个简单的石头剪纸游戏。我创建了两个按钮:一个用于运行游戏,另一个用于重置游戏

单击“游戏”按钮后,它将运行我的JavaScript函数,其中包括一个提示符()和一个随机选择。宣布获胜者。然而,我注意到我所有的HTMl都消失了

  • 为什么我的内容在哪里消失了
  • 当用户玩游戏并在提示中输入信息时,如何使其保持不变
  • 代码:

    
    游戏:RPS
    JS测试输出
    石头、布、剪刀:你vs电脑!
    玩游戏
    函数游戏(){
    var a=提示(“石头、布或剪刀?”);
    var b=[“石头”、“布”、“剪刀”];
    var rand=b[数学地板(数学随机()*b.长度)];
    如果(a==“岩石”和&rand==“纸张”){
    文件。写(“电脑赢了!”);
    }
    否则,如果(a==“岩石”和&rand==“剪刀”){
    记录。写下(“玩家1获胜!”);
    }
    否则,如果(a==“纸张”&&rand==“岩石”){
    记录。写下(“玩家1获胜!”);
    }
    否则,如果(a==“纸”和&rand==“剪刀”){
    文件。写(“电脑赢了!”);
    }
    否则,如果(a==“剪刀”和&rand==“石头”){
    文件。写(“电脑赢了!”);
    }
    否则,如果(a==“剪刀”和&rand==“纸”){
    记录。写下(“玩家1获胜!”);
    }
    else如果(a==rand){
    记录。写下(“我们打成平局了!”);
    }
    否则{
    写(“这不是一个选择!计算机赢了!”);
    }
    }
    
    感谢您的阅读,非常感谢您的任何贡献。这是我的第一篇文章,我真的很有兴趣学习这一点,希望有一天能成为一名程序员(我计划从工作中休息,并可能进入一个训练营)。我真的很喜欢尝试/阅读/学习编程(不要认为我已经准备好学习计算机科学,比如算法、数据结构,或者我应该现在就开始学习??)


    Jon

    替换HTML的原因是一个邪恶的JavaScript函数:

    这绝对是“糟糕的形式”。只有在页面加载时使用它,它才适用于网页;如果您在运行时使用它,它将用输入替换整个文档。如果您将其作为严格的XHTML结构应用,那么它甚至不是有效的代码

    问题是: 写入文档流。调用已关闭(或已加载)的文档会自动调用,这将清除该文档

    --

    他有两个心腹,还有。加载HTML文档时,文档处于“打开”状态文档加载完成后,文档已“关闭”。此时使用将删除整个(关闭的)HTML文档,并将其替换为新的(打开的)文档。这意味着您的网页已自行删除,并开始从头开始编写新页面

    我相信这也会导致浏览器性能下降(如果我错了,请纠正我)

    例如: 此示例在加载页面后将输出写入HTML文档。当您按下“清除”按钮时,Watch的邪恶力量会清除整个文档:


    我是一个普通的HTML页面。我是无辜的,纯粹是为了提供信息。请不要伤害我
    您需要向我们发布您的代码。打印得很好。请使用document.write(),如果没有根据以下线程调用document.load(),它将清除页面:@Octopus谁使用document.write for JSONP?事实并非如此。如果您使用document.write执行JSONP,您将遇到更大的问题。JSONP使用附加在页面上的脚本标记。哈哈,谢谢你的解释。我不确定在屏幕上打印东西的最佳方式是什么。有document.write return console.log和更多?Return打印一个值,console.log只打印到控制台,这与浏览器不同,对吗?这些可能是基本问题的基础,hencey选择名字标签lol。
    <!DOCTYPE html>
    <html>
    <title>Game: RPS</title>
    <body>
    <h1>JS Test Output</title>
    
    <h3>Rock, Paper, Scissors: You vs Computer!</h3>
    <button onclick="game()">Play Game</button>
    <input type="button" value="Reload Page" onClick="window.location.reload()">
    
    
    <script>
    
    
    function game(){
    var a = prompt("Rock, Paper, or Scissors?");
    var b = ["Rock","Paper","Scissors"];
    var rand = b[Math.floor(Math.random() * b.length)];
    
    if (a== "Rock" && rand=="Paper") {
        document.write("Computer Wins!");
        }
    else if (a=="Rock" && rand=="Scissors") {
        document.write("Player 1 wins!");
        }
    else if (a=="Paper" && rand=="Rock") {
        document.write("Player 1 wins!");
        }
    else if (a=="Paper" && rand=="Scissors") {
        document.write("Computer wins!");
        }
    else if (a=="Scissors" && rand=="Rock") {
        document.write("Computer wins!");
        }
    else if (a=="Scissors" && rand=="Paper") {
        document.write("Player 1 wins!");
        }
    else if (a == rand) {
        document.write("We have a tie!");
        }
    else {
        document.write("That's not a choice! Computer wins!");
        }
    }
    
    </script>
    </body>
    </html>