如何在JavaScript控制台中创建用户输入?

anauzrmj  于 2023-01-01  发布在  Java
关注(0)|答案(2)|浏览(129)

我在JavaScript控制台上创建了一个小游戏,为了寻找灵感,我看了谷歌的复活节彩蛋版本(如果你搜索文本冒险,然后按f12键,你就可以看到它)。我想输入,唯一能弄清楚如何输入的方法是使用函数:

console.log('Do you like chocolate ice cream?');

function yes() {
    console.log('I don't like chocolate ice cream.');
}

function no() {
    console.log('Yeah, I agree. Who even likes chocolate ice cream anyways?');
}

但在google的版本中,你只需要输入yes,它就会返回一堆文本,没有括号。我试过使用变量,但它看起来不太好,结果变成了绿色。有人知道如何让它像google的那样吗?

fumotvh3

fumotvh31#

你不能这么做。最接近的说法是

var input = prompt("What is your name?");
console.log("Hello, " + input + "!");
6ojccjat

6ojccjat2#

我在文本冒险复活节彩蛋游戏的javascript控制台里看了看,我想:"如果谷歌能做到,它一定有可能做到"。而且它肯定是有可能的。
在浏览游戏时,我意识到所有可能的输入都是变量,这可能是有意义的,因为如果是其他东西,你可能会得到一个undefined错误。
所以我做了一点挖掘,关于栈溢出,我发现当一个变量被调用时,监听是可能的,就像这样:

Object.defineProperty(window, 'foo', {
  get: function () {
      console.log("hello world")
  }
});

这个函数会监听输入foo在窗口中被调用的时间,并运行get函数,你可以在get函数中实现你的代码逻辑。
如果您还想为控制台添加样式,可以在控制台消息的开头添加" % c",并将css样式作为字符串添加到下一个参数中。例如:

console.log('%cHello World!', 'color:blue;font-size:20px;');

靶病变; DR

Object.defineProperty(window, 'yourproperty', {
  get: function () {
      //your code logic
  }
});

我希望这能有所帮助。这是我第一次回答堆栈溢出问题。研究这个问题非常有趣。

相关问题