如何从Chrome's Javascript控制台获得输入

How to get input from Chrome's Javascript console?

本文关键字:控制台 Javascript 输入 Chrome      更新时间:2023-09-26

是否有一种方法可以通过编程方式从Google Chrome的Javascript控制台获得输入,类似于Firefox中的readline() ?

一种比较棘手的方法是为窗口对象的属性赋值getter

Object.defineProperty(window, 'customCommand', {
  get: function() {
    console.log("hey");
    return "hey";
  }
});

所以当你输入"customCommand"(没有括号)时,它会在控制台"获取"变量时将你的console.log文本打印到控制台。

您仍然需要返回一些东西,但我不确定如何更改顺序,以便首先返回值,然后在控制台中显示文本。但这绝对是可能的,我已经看到这种情况发生了。

这是一个获取输入的间接方法:

在JavaScript中声明函数:

function your_command_here()  {
    //code
}

由于Chrome的控制台基本上提供了与页面内容通信的方法,如JavaScript变量,函数等,因此将函数声明为应收命令可以是一个选项。

在控制台中,为提供输入,用户应键入:
your_command_here ()

另一个解决方法是:
声明函数:

function command(var cmnd)  {
    switch(cmnd)  {
        case "command1":
            //code
        break;
    }
}

所以用户可以(更方便地)输入:
命令("此处的用户命令")

我们可以做的是钩子console.log,所以当它记录的东西我们可以访问,否则没有这样的直接方法,像在firefox中,这可能为我们在一个简单的单行代码。

var tempStore = [];
var oldLog = console.log;
console.log = function() {
    tempStore.push(arguments);
    oldLog.apply(console, arguments);
}

如果您正在使用控制台IO,则可能需要在环境中合并jsh (Javascript Shell)。请参阅http://code.google.com/p/jsh/了解如何操作。

对不起,不工作在Chrome JS控制台,只是工作在repl从repl.

示例来自replit:

console.log("Enter your name:");
console.read(function(name) {
  console.log('Your name is ' + name + '.');
});

这是一个从控制台输入的解决方案。试试这个!!

process.stdin.resume();
process.stdin.setEncoding('ascii');
var stdInput = ""; 
var stdInputArr = "";
var index = 0;
process.stdin.on('data', function (data) {
    stdInput  += data;
});
process.stdin.on('end', function () {
    stdInputArr  = stdInput.split("'n");
    main();    
});
// Reads complete line from STDIN
function readLine() {
    return stdInputArr[index++];
}
//call this function in the main function
javascript node.js jquery consoleweb

你最好使用:

myVar = prompt('Which value do your want?')

在基于控制台的环境中(例如浏览器开发工具中的JavaScript控制台或Node.js环境),您可以使用readline模块来处理用户输入。

下面是一个使用readline模块在Node.js环境中读取用户输入的示例:

const readline = require("readline");
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});
rl.question("Please enter your name: ", (name) => {
  console.log(`Hello, ${name}!`);
  rl.close();
});

在这段代码中,readline模块用于创建读取输入的接口。rl.question()功能会提示用户"请输入您的姓名"。然后捕获用户的响应,并将其作为参数传递给回调函数(name) => {...}。在回调函数中,您可以处理用户的输入,执行任何必要的操作,并提供所需的输出。

一旦您完成了用户输入的处理,调用rl.close()来关闭readline接口并允许程序优雅地退出是很重要的。

请记住,这个特定的示例使用Node.js,但在不同的环境或平台中,处理用户输入的方式可能会有所不同。