如何从Chrome的Javascript控制台获取输入?

有没有办法以编程方式从谷歌浏览器的Javascript控制台获取输入,类似于Firefox中的readline()

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

在JavaScript中声明一个函数:

 function your_command_here() { //code } 

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

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

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

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

因此用户可以(更方便地)键入:
命令(“用户命令在这里”)

抱歉,无法在Chrome JS控制台上运行,只需处理来自repl.it的repl

repl.it的示例:

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

如果使用控制台IO,则可能需要在环境中包含jsh(Javascript Shell)。 有关操作方法,请参见http://code.google.com/p/jsh/ 。 希望这可以帮助。

我们可以做的是挂钩console.log,所以每当它记录我们可以访问的内容时,否则没有像firefox中那样的直接方法,这可以通过一个简单的单行代码为我们做到这一点。

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

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

 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 控制台 web

执行此操作的一种棘手方法是将getter分配给窗口对象的属性

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

因此,当您键入“customCommand”(不带括号)时,它会在控制台“获取”变量时将console.log文本打印到控制台。

你仍然需要返回一些内容,但我不确定如何更改顺序,以便首先返回值,然后控制台中的文本显示为第二个。 这绝对是可能的,但我已经看到了这种情况。